← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] ~cjwatson/launchpad:zcml-namespaces-url into launchpad:master

 

Colin Watson has proposed merging ~cjwatson/launchpad:zcml-namespaces-url into launchpad:master.

Commit message:
Move ZCML url directive to lp namespace

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~cjwatson/launchpad/+git/launchpad/+merge/436869

As with commit 57196c1d6a220f00039e027768cc05368135f556, it makes sense to move our local `url` directive to our own namespace rather than poking it into the Zope browser namespace.  This is a big patch, but it's mostly mechanical.
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of ~cjwatson/launchpad:zcml-namespaces-url into launchpad:master.
diff --git a/doc/explanation/framework.rst b/doc/explanation/framework.rst
index ef3342a..78e3cdf 100644
--- a/doc/explanation/framework.rst
+++ b/doc/explanation/framework.rst
@@ -51,10 +51,10 @@ Many of the details here are handled by custom code in
 provides many application-specific hooks, and
 ``lp.services.webapp.publishing`` which defines much of Launchpad's
 traversal framework.  The URL structure is defined in various
-``configure.zcml`` files: ``browser:url`` tags are used to build up the
-canonical URL for an object, and ``browser:navigation`` tags register
-classes called as part of traversal to resolve the next step from each
-intermediate object in the URL (starting at
+``configure.zcml`` files: ``lp:url`` tags are used to build up the canonical
+URL for an object, and ``browser:navigation`` tags register classes called
+as part of traversal to resolve the next step from each intermediate object
+in the URL (starting at
 ``lp.app.browser.launchpad.LaunchpadRootNavigation``).
 
 Page templating
diff --git a/lib/lp/answers/browser/configure.zcml b/lib/lp/answers/browser/configure.zcml
index 87a6b76..abd9c42 100644
--- a/lib/lp/answers/browser/configure.zcml
+++ b/lib/lp/answers/browser/configure.zcml
@@ -6,6 +6,7 @@
   xmlns="http://namespaces.zope.org/zope";
   xmlns:browser="http://namespaces.zope.org/browser";
   xmlns:i18n="http://namespaces.zope.org/i18n";
+  xmlns:lp="http://namespaces.canonical.com/lp";
   i18n_domain="launchpad">
 <facet facet="answers">
 
@@ -130,14 +131,14 @@
     name="+index"
     />
 
-  <browser:url
+  <lp:url
     for="lp.answers.interfaces.question.IQuestion"
     path_expression="string:+question/${id}"
     attribute_to_parent="target"
     rootsite="answers"
     />
 
-  <browser:url
+  <lp:url
     for="lp.answers.interfaces.questionsubscription.IQuestionSubscription"
     path_expression="string:subscriptions/${person}"
     attribute_to_parent="question"
@@ -258,7 +259,7 @@
     template="../../app/templates/generic-edit.pt"
     />
 
-  <browser:url
+  <lp:url
     for="lp.answers.interfaces.question.IQuestionMessage"
     path_expression="string:messages/${display_index}"
     attribute_to_parent="question"
@@ -287,7 +288,7 @@
     classes="QuestionMessageNavigation"
     />
 
-  <browser:url
+  <lp:url
     for="lp.answers.interfaces.questioncollection.IQuestionSet"
     path_expression="string:questions"
     parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -342,7 +343,7 @@
     template="../../app/templates/generic-edit.pt"
     />
 
-  <browser:url
+  <lp:url
     for="lp.answers.interfaces.faq.IFAQ"
     path_expression="string:+faq/${id}"
     attribute_to_parent="target"
diff --git a/lib/lp/blueprints/browser/configure.zcml b/lib/lp/blueprints/browser/configure.zcml
index aa5533b..2393698 100644
--- a/lib/lp/blueprints/browser/configure.zcml
+++ b/lib/lp/blueprints/browser/configure.zcml
@@ -6,6 +6,7 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
     i18n_domain="launchpad">
 
@@ -20,7 +21,7 @@
         for="lp.blueprints.interfaces.sprint.ISprint"
         name="+specs"
         layer="lp.blueprints.publisher.BlueprintsLayer"/>
-    <browser:url
+    <lp:url
         for="lp.blueprints.interfaces.sprint.ISprint"
         path_expression="name"
         parent_utility="lp.blueprints.interfaces.sprint.ISprintSet"/>
@@ -135,7 +136,7 @@
             name="+sprints"
             template="../templates/hassprints-sprints.pt"/>
     </browser:pages>
-    <browser:url
+    <lp:url
         for="lp.blueprints.interfaces.sprint.ISprintSet"
         path_expression="string:sprints"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/>
@@ -182,7 +183,7 @@
     <browser:defaultView
         for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification"
         name="+decide"/>
-    <browser:url
+    <lp:url
         for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification"
         path_expression="string:${sprint/name}"
         attribute_to_parent="specification"/>
@@ -199,7 +200,7 @@
         for="lp.blueprints.interfaces.sprintspecification.ISprintSpecification"
         permission="zope.Public"
         template="../templates/sprintspecification-icon-status.pt"/>
-    <browser:url
+    <lp:url
         for="lp.blueprints.interfaces.specificationsubscription.ISpecificationSubscription"
         path_expression="string:+subscription/${person/name}"
         attribute_to_parent="specification"/>
@@ -216,13 +217,13 @@
     <browser:defaultView
         for="lp.blueprints.interfaces.sprintattendance.ISprintAttendance"
         name="+edit"/>
-    <browser:url
+    <lp:url
         for="lp.blueprints.interfaces.sprintattendance.ISprintAttendance"
         path_expression="string:${attendee/name}"
         attribute_to_parent="sprint"/>
     <facet
         facet="specifications">
-        <browser:url
+        <lp:url
             for="lp.blueprints.interfaces.specificationbranch.ISpecificationBranch"
             urldata="lp.blueprints.browser.specificationbranch.SpecificationBranchURL"/>
         <browser:defaultView
@@ -246,7 +247,7 @@
         <browser:defaultView
             for="lp.blueprints.interfaces.specification.ISpecification"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.blueprints.interfaces.specification.ISpecification"
             path_expression="string:+spec/${name}"
             attribute_to_parent="target"
@@ -471,7 +472,7 @@
             class="lp.blueprints.browser.specification.SpecificationLinkBranchView"
             template="../../app/templates/generic-edit.pt"
             permission="launchpad.AnyPerson"/>
-        <browser:url
+        <lp:url
             for="lp.blueprints.interfaces.specification.ISpecificationSet"
             path_expression="string:"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
diff --git a/lib/lp/bugs/browser/configure.zcml b/lib/lp/bugs/browser/configure.zcml
index e5d11ae..c21599c 100644
--- a/lib/lp/bugs/browser/configure.zcml
+++ b/lib/lp/bugs/browser/configure.zcml
@@ -6,6 +6,7 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
     i18n_domain="launchpad">
     <browser:feeds
@@ -158,7 +159,7 @@
         <browser:defaultView
             for="lp.bugs.interfaces.bugmessage.IBugComment"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugmessage.IBugComment"
             path_expression="string:comments/${index}"
             attribute_to_parent="bugtask"
@@ -203,7 +204,7 @@
         provides="lazr.restful.interfaces.IEntry"
         factory="lp.bugs.adapters.bug.bugcomment_to_entry"
         />
-    <browser:url
+    <lp:url
         for="lp.bugs.interfaces.malone.IMaloneApplication"
         path_expression="string:bugs"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/>
@@ -455,7 +456,7 @@
         <browser:defaultView
             for="lp.bugs.interfaces.bugtask.IBugTask"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugtask.IBugTask"
             path_expression="string:+bug/${bug/id}"
             attribute_to_parent="target"
@@ -481,7 +482,7 @@
             permission="launchpad.View"
             name="+activity"
             template="../templates/bug-activity.pt"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugactivity.IBugActivity"
             path_expression="string:activity"
             attribute_to_parent="bug"
@@ -663,7 +664,7 @@
             class="lp.bugs.browser.bugsubscription.BugSubscriptionAddView"
             permission="launchpad.AnyPerson"
             template="../templates/bug-addsubscriber.pt"/>
-    <browser:url
+    <lp:url
         for="lp.bugs.interfaces.bugattachment.IBugAttachment"
         urldata="lp.bugs.browser.bugattachment.BugAttachmentURL"/>
     <browser:defaultView
@@ -705,17 +706,17 @@
         <browser:defaultView
             for="lp.bugs.interfaces.bugtracker.IBugTracker"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugtracker.IBugTracker"
             path_expression="string:${name}"
             parent_utility="lp.bugs.interfaces.bugtracker.IBugTrackerSet"
             rootsite="bugs"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugtracker.IBugTrackerComponentGroup"
             path_expression="string:+components/${name}"
             attribute_to_parent="bug_tracker"
             rootsite="bugs"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugtracker.IBugTrackerComponent"
             path_expression="name"
             attribute_to_parent="component_group"
@@ -755,7 +756,7 @@
         <browser:defaultView
             for="lp.bugs.interfaces.bugtracker.IBugTrackerSet"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugtracker.IBugTrackerSet"
             path_expression="string:bugtrackers"
             parent_utility="lp.bugs.interfaces.malone.IMaloneApplication"
@@ -774,7 +775,7 @@
             class="lp.bugs.browser.bugtracker.BugTrackerAddView"
             permission="launchpad.AnyPerson"
             template="../../app/templates/generic-edit.pt"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugtracker.IRemoteBug"
             path_expression="string:${remotebug}"
             attribute_to_parent="bugtracker"
@@ -790,7 +791,7 @@
                 name="+index"
                 template="../templates/remotebug-index.pt"/>
         </browser:pages>
-    <browser:url
+    <lp:url
         for="lp.bugs.interfaces.bugbranch.IBugBranch"
         path_expression="string:+bug/${bug/id}"
         attribute_to_parent="branch"/>
@@ -819,7 +820,7 @@
             classes="
                 CveContextMenu
                 CveSetContextMenu"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.cve.ICve"
             path_expression="sequence"
             parent_utility="lp.bugs.interfaces.cve.ICveSet"
@@ -861,7 +862,7 @@
         <browser:defaultView
             for="lp.bugs.interfaces.cve.ICveSet"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.cve.ICveSet"
             path_expression="string:cve"
             parent_utility="lp.bugs.interfaces.malone.IMaloneApplication"/>
@@ -893,7 +894,7 @@
             class="lp.bugs.browser.buglinktarget.BugLinksListingView"
             permission="zope.Public"
             template="../templates/cve-portlet-bugs2.pt"/>
-    <browser:url
+    <lp:url
         for="lp.bugs.interfaces.vulnerability.IVulnerability"
         path_expression="string:+vulnerability/${id}"
         attribute_to_parent="distribution"
@@ -918,7 +919,7 @@
         class="lp.bugs.browser.vulnerability.VulnerabilitySetIndexView"
         permission="zope.Public"
         template="../templates/vulnerabilityset-index.pt" />
-    <browser:url
+    <lp:url
         for="lp.bugs.interfaces.bugsubscription.IBugSubscription"
         path_expression="string:+subscription/${person/name}"
         attribute_to_parent="bug"
@@ -930,7 +931,7 @@
         <browser:defaultView
             for="lp.bugs.interfaces.bug.IBug"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bug.IBug"
             urldata="lp.bugs.browser.bug.BugURL"/>
         <browser:navigation
@@ -1014,7 +1015,7 @@
             module="lp.bugs.browser.bug"
             classes="
                 BugSetNavigation"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bug.IBugSet"
             path_expression="string:bugs"
             parent_utility="lp.bugs.interfaces.malone.IMaloneApplication"/>
@@ -1040,12 +1041,12 @@
             class="lp.bugs.browser.bugnomination.BugNominationEditView"
             permission="launchpad.Driver"
             template="../templates/bugnomination-edit-form.pt"/>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugnomination.IBugNomination"
             path_expression="string:nominations/${id}"
             attribute_to_parent="bug"
             rootsite="bugs" />
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugwatch.IBugWatch"
             path_expression="string:+watch/${id}"
             attribute_to_parent="bug"
@@ -1084,7 +1085,7 @@
                 name="+error-help"
                 template="../templates/bugwatch-error-help.pt"/>
         </browser:pages>
-        <browser:url
+        <lp:url
             for="lp.bugs.interfaces.bugwatch.IBugWatchSet"
             path_expression="string:watches"
             attribute_to_parent="bug"/>
@@ -1116,7 +1117,7 @@
             permission="launchpad.AnyPerson"
             template="../templates/bugtarget-subscription-list.pt"/>
 
-    <browser:url
+    <lp:url
         for="lp.bugs.interfaces.structuralsubscription.IStructuralSubscription"
         path_expression="string:+subscription/${subscriber/name}"
         attribute_to_parent="target"/>
@@ -1125,7 +1126,7 @@
         classes="StructuralSubscriptionNavigation"/>
 
     <!-- Bug Subscription Filters -->
-      <browser:url
+      <lp:url
           for="lp.bugs.interfaces.bugsubscriptionfilter.IBugSubscriptionFilter"
           path_expression="string:+filter/${id}"
           attribute_to_parent="structural_subscription"
diff --git a/lib/lp/buildmaster/browser/configure.zcml b/lib/lp/buildmaster/browser/configure.zcml
index c1a40b4..83626e1 100644
--- a/lib/lp/buildmaster/browser/configure.zcml
+++ b/lib/lp/buildmaster/browser/configure.zcml
@@ -6,9 +6,10 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
     i18n_domain="launchpad">
-    <browser:url
+    <lp:url
         for="lp.buildmaster.interfaces.processor.IProcessor"
         path_expression="string:${name}"
         parent_utility="lp.buildmaster.interfaces.processor.IProcessorSet" />
@@ -16,7 +17,7 @@
     <browser:navigation
         module="lp.buildmaster.browser.processor"
         classes="ProcessorSetNavigation" />
-    <browser:url for="lp.buildmaster.interfaces.processor.IProcessorSet"
+    <lp:url for="lp.buildmaster.interfaces.processor.IProcessorSet"
         path_expression="string:+processors"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/>
 
@@ -33,7 +34,7 @@
         permission="launchpad.View"
         template="../templates/buildfarmjob-current.pt"/>
 
-    <browser:url
+    <lp:url
         for="lp.buildmaster.interfaces.builder.IBuilderSet"
         path_expression="string:builders"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/>
@@ -65,7 +66,7 @@
         module="lp.buildmaster.browser.builder"
         classes="
             BuilderNavigation"/>
-    <browser:url
+    <lp:url
         for="lp.buildmaster.interfaces.builder.IBuilder"
         path_expression="name"
         parent_utility="lp.buildmaster.interfaces.builder.IBuilderSet"/>
diff --git a/lib/lp/charms/browser/configure.zcml b/lib/lp/charms/browser/configure.zcml
index 3741679..db532de 100644
--- a/lib/lp/charms/browser/configure.zcml
+++ b/lib/lp/charms/browser/configure.zcml
@@ -6,9 +6,10 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     i18n_domain="launchpad">
     <facet facet="overview">
-        <browser:url
+        <lp:url
             for="lp.charms.interfaces.charmrecipe.ICharmRecipe"
             urldata="lp.charms.browser.charmrecipe.CharmRecipeURL" />
         <browser:menus
@@ -77,17 +78,17 @@
             name="+new-charm-recipe"
             template="../templates/charmrecipe-new.pt" />
 
-        <browser:url
+        <lp:url
             for="lp.charms.interfaces.charmrecipe.ICharmRecipeSet"
             path_expression="string:+charm-recipes"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" />
 
-        <browser:url
+        <lp:url
             for="lp.charms.interfaces.charmrecipe.ICharmRecipeBuildRequest"
             path_expression="string:+build-request/${id}"
             attribute_to_parent="recipe" />
 
-        <browser:url
+        <lp:url
             for="lp.charms.interfaces.charmrecipebuild.ICharmRecipeBuild"
             path_expression="string:+build/${id}"
             attribute_to_parent="recipe" />
@@ -130,11 +131,11 @@
             factory="lp.services.webapp.breadcrumb.TitleBreadcrumb"
             permission="zope.Public" />
 
-        <browser:url
+        <lp:url
             for="lp.charms.interfaces.charmbase.ICharmBase"
             path_expression="string:${id}"
             parent_utility="lp.charms.interfaces.charmbase.ICharmBaseSet" />
-        <browser:url
+        <lp:url
             for="lp.charms.interfaces.charmbase.ICharmBaseSet"
             path_expression="string:+charm-bases"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" />
diff --git a/lib/lp/code/browser/configure.zcml b/lib/lp/code/browser/configure.zcml
index ea9052d..788c7f2 100644
--- a/lib/lp/code/browser/configure.zcml
+++ b/lib/lp/code/browser/configure.zcml
@@ -6,14 +6,15 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
     i18n_domain="launchpad">
-    <browser:url
+    <lp:url
        for="lp.code.interfaces.branch.IBranchSet"
        path_expression="string:branches"
        parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
       />
-    <browser:url
+    <lp:url
        for="lp.code.interfaces.gitrepository.IGitRepositorySet"
        path_expression="string:+git"
        parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -95,7 +96,7 @@
       permission="zope.Public"
       />
 
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.codereviewvote.ICodeReviewVoteReference"
         path_expression="string:+review/${id}"
         attribute_to_parent="branch_merge_proposal"
@@ -106,7 +107,7 @@
         class="lp.code.browser.codereviewvote.CodeReviewVoteReassign"
         permission="launchpad.AnyPerson"
         template="../../app/templates/generic-edit.pt"/>
-        <browser:url
+        <lp:url
             for="lp.code.interfaces.codeimportmachine.ICodeImportMachine"
             path_expression="string:${hostname}"
             parent_utility="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet"
@@ -123,7 +124,7 @@
         <browser:navigation
             module="lp.code.browser.codeimportmachine"
             classes="CodeImportMachineSetNavigation"/>
-        <browser:url
+        <lp:url
             for="lp.code.interfaces.codeimportmachine.ICodeImportMachineSet"
             path_expression="string:+machines"
             parent_utility="lp.code.interfaces.codeimport.ICodeImportSet"
@@ -137,14 +138,14 @@
             name="+index"
             template="../templates/codeimport-machines.pt"
             permission="zope.Public"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.branchref.IBranchRef"
         path_expression="string:.bzr"
         attribute_to_parent="branch"/>
     <browser:navigation
         module="lp.code.browser.branchref"
         classes="BranchRefNavigation"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.codehosting.IBazaarApplication"
         path_expression="string:+code"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -306,7 +307,7 @@
         class="lp.code.browser.branchmergeproposal.BranchMergeProposalAddVoteView"
         permission="launchpad.AnyPerson"
         template="../templates/branchmergeproposal-vote.pt"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.branchmergeproposal.IBranchMergeProposal"
         path_expression="string:+merge/${id}"
         attribute_to_parent="parent"
@@ -337,7 +338,7 @@
         class="lp.code.browser.branchsubscription.BranchSubscriptionEditView"
         permission="launchpad.Edit"
         template="../templates/branchsubscription-edit.pt"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.branchsubscription.IBranchSubscription"
         path_expression="string:+subscription/${person/name}"
         attribute_to_parent="branch"
@@ -345,7 +346,7 @@
     <browser:defaultView
         for="lp.code.interfaces.branch.IBranch"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.branch.IBranch"
         urldata="lp.code.browser.branch.BranchURL"/>
     <browser:navigation
@@ -551,7 +552,7 @@
             BranchContextMenu
             BranchEditMenu"
         module="lp.code.browser.branch"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.codereviewcomment.ICodeReviewComment"
         path_expression="string:comments/${id}"
         attribute_to_parent="branch_merge_proposal"
@@ -625,7 +626,7 @@
             name="+macros"
             permission="zope.Public"
             template="../templates/codeimport-macros.pt"/>
-        <browser:url
+        <lp:url
             for="lp.code.interfaces.codeimport.ICodeImportSet"
             path_expression="string:+code-imports"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -651,7 +652,7 @@
             name="+new-import"
             template="../templates/codeimport-new.pt"
             permission="launchpad.AnyPerson"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.codeimport.ICodeImport"
         attribute_to_parent="target"
         path_expression="string:+code-import"
@@ -812,7 +813,7 @@
     <browser:defaultView
         for="lp.code.interfaces.gitrepository.IGitRepository"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.gitrepository.IGitRepository"
         urldata="lp.code.browser.gitrepository.GitRepositoryURL"/>
     <browser:navigation
@@ -969,13 +970,13 @@
         factory="lp.code.browser.gitrepository.GitRepositoryBreadcrumb"
         permission="zope.Public"/>
 
-  <browser:url
+  <lp:url
         for="lp.code.interfaces.revisionstatus.IRevisionStatusReport"
         path_expression="string:+status/${id}"
         attribute_to_parent="git_repository"
         rootsite="code"/>
 
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.revisionstatus.IRevisionStatusArtifact"
         path_expression="string:+artifact/${id}"
         attribute_to_parent="repository"
@@ -988,7 +989,7 @@
     <browser:defaultView
         for="lp.code.interfaces.gitref.IGitRef"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.gitref.IGitRef"
         path_expression="string:+ref/${url_quoted_name}"
         attribute_to_parent="repository"
@@ -1059,7 +1060,7 @@
         permission="launchpad.Edit"
         name="+index"
         template="../templates/gitsubscription-edit.pt"/>
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.gitsubscription.IGitSubscription"
         path_expression="string:+subscription/${person/name}"
         attribute_to_parent="repository"
@@ -1158,7 +1159,7 @@
         layer="lp.code.publisher.CodeLayer"
         name="+branches"/>
 
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.diff.IPreviewDiff"
         path_expression="string:+preview-diff/${id}"
         attribute_to_parent="branch_merge_proposal"
@@ -1285,12 +1286,12 @@
         name="fmt"
         />
 
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.sourcepackagerecipe.ISourcePackageRecipe"
         attribute_to_parent="owner"
         path_expression="string:+recipe/${name}"
         rootsite="code" />
-    <browser:url
+    <lp:url
         for="lp.code.interfaces.sourcepackagerecipebuild.ISourcePackageRecipeBuild"
         attribute_to_parent="archive"
         path_expression="string:+recipebuild/${id}"
@@ -1425,7 +1426,7 @@
             factory="lp.code.browser.sourcepackagerecipe.SourcePackageRecipeBreadcrumb"
             permission="zope.Public"/>
 
-        <browser:url
+        <lp:url
             for="lp.code.interfaces.cibuild.ICIBuild"
             path_expression="string:+build/${id}"
             attribute_to_parent="git_repository"/>
diff --git a/lib/lp/oci/browser/configure.zcml b/lib/lp/oci/browser/configure.zcml
index 2140829..ce3c49a 100644
--- a/lib/lp/oci/browser/configure.zcml
+++ b/lib/lp/oci/browser/configure.zcml
@@ -6,9 +6,10 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     i18n_domain="launchpad">
     <facet facet="overview">
-        <browser:url
+        <lp:url
             for="lp.oci.interfaces.ocirecipe.IOCIRecipe"
             path_expression="string:${oci_project/pillar/name}/+oci/${oci_project/name}/+recipe/${name}"
             attribute_to_parent="owner" />
@@ -90,11 +91,11 @@
             factory="lp.oci.browser.ocirecipe.OCIRecipeBreadcrumb"
             permission="zope.Public" />
 
-        <browser:url
+        <lp:url
             for="lp.oci.interfaces.ocirecipe.IOCIRecipeBuildRequest"
             path_expression="string:+build-request/${id}"
             attribute_to_parent="recipe" />
-        <browser:url
+        <lp:url
             for="lp.oci.interfaces.ocirecipebuild.IOCIRecipeBuild"
             path_expression="string:+build/${id}"
             attribute_to_parent="recipe" />
@@ -137,7 +138,7 @@
             factory="lp.services.webapp.breadcrumb.TitleBreadcrumb"
             permission="zope.Public" />
 
-        <browser:url
+        <lp:url
             for="lp.oci.interfaces.ocipushrule.IOCIPushRule"
             path_expression="string:+push-rule/${id}"
             attribute_to_parent="recipe" />
@@ -175,7 +176,7 @@
             permission="launchpad.AnyPerson"
             name="+addsubscriber"
             template="../../app/templates/generic-edit.pt"/>
-        <browser:url
+        <lp:url
             for="lp.oci.interfaces.ocirecipesubscription.IOCIRecipeSubscription"
             path_expression="string:+subscription/${person/name}"
             attribute_to_parent="recipe"
diff --git a/lib/lp/registry/browser/configure.zcml b/lib/lp/registry/browser/configure.zcml
index 22096c8..2297a7f 100644
--- a/lib/lp/registry/browser/configure.zcml
+++ b/lib/lp/registry/browser/configure.zcml
@@ -6,24 +6,25 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
     i18n_domain="launchpad">
-  <browser:url
+  <lp:url
       for="lp.registry.interfaces.person.IPersonSet"
       path_expression="string:people"
       parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
       />
-  <browser:url
+  <lp:url
       for="lp.registry.interfaces.distribution.IDistributionSet"
       path_expression="string:distros"
       parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
       />
-  <browser:url
+  <lp:url
       for="lp.registry.interfaces.sourcepackagename.ISourcePackageNameSet"
       path_expression="string:sourcepackagenames"
       parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
       />
-  <browser:url
+  <lp:url
       for="lp.registry.interfaces.projectgroup.IProjectGroupSet"
       path_expression="string:projectgroups"
       parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -32,12 +33,12 @@
       module="lp.registry.feed.announcement"
       classes="LaunchpadAnnouncementsFeed TargetAnnouncementsFeed"
       />
-  <browser:url
+  <lp:url
       for="lp.app.interfaces.services.IServiceFactory"
       path_expression="string:+services"
       parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
       />
-  <browser:url
+  <lp:url
       for="lp.app.interfaces.services.IService"
       path_expression="string:${name}"
       parent_utility="lp.app.interfaces.services.IServiceFactory"/>
@@ -63,7 +64,7 @@
         permission="zope.Public"
         attribute="__call__"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.teammembership.ITeamMembership"
         path_expression="string:+member/${person/name}"
         rootsite="mainsite"
@@ -97,7 +98,7 @@
         classes="
                  DistroSeriesNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.distroseries.IDistroSeries"
         urldata="lp.registry.browser.distroseries.DistroSeriesURL"
         />
@@ -210,7 +211,7 @@
         permission="zope.Public"
         template="../templates/distroseries-localdifferences.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.distroseriesdifference.IDistroSeriesDifference"
         path_expression="string:+source/${source_package_name/name}/+difference/${parent_series/parent/name}/${parent_series/name}"
         rootsite="mainsite"
@@ -231,7 +232,7 @@
         module="lp.registry.browser.distroseriesdifference"
         classes="DistroSeriesDifferenceNavigation"
         />
-    <browser:url
+    <lp:url
         for="..interfaces.distroseriesdifferencecomment.IDistroSeriesDifferenceComment"
         path_expression="string:comments/${id}"
         attribute_to_parent="distro_series_difference"
@@ -296,12 +297,12 @@
         permission="launchpad.AnyPerson"
         template="../templates/signedcodeofconduct-add.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.codeofconduct.ICodeOfConductSet"
         path_expression="string:codeofconduct"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.codeofconduct.ICodeOfConduct"
         parent_utility="lp.registry.interfaces.codeofconduct.ICodeOfConductSet"
         path_expression="version"
@@ -344,12 +345,12 @@
         permission="launchpad.Admin"
         template="../../app/templates/generic-edit.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.codeofconduct.ISignedCodeOfConductSet"
         path_expression="string:console"
         parent_utility="lp.registry.interfaces.codeofconduct.ICodeOfConductSet"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.codeofconduct.ISignedCodeOfConduct"
         path_expression="string:${id}"
         parent_utility="lp.registry.interfaces.codeofconduct.ISignedCodeOfConductSet"
@@ -378,7 +379,7 @@
         permission="launchpad.Admin"
         template="../../app/templates/generic-edit.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.irc.IIrcID"
         path_expression="string:+ircnick/${id}"
         attribute_to_parent="person"
@@ -495,7 +496,7 @@
         classes="
                  ProjectSetNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.projectgroup.IProjectGroup"
         path_expression="name"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -520,7 +521,7 @@
         permission="launchpad.Moderate"
         template="../../app/templates/generic-edit.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.projectgroup.IProjectGroupSeries"
         path_expression="string:+series/${name}"
         attribute_to_parent="projectgroup"
@@ -549,7 +550,7 @@
         for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage"
         layer="lp.answers.publisher.AnswersLayer"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.distributionsourcepackage.IDistributionSourcePackage"
         urldata="lp.registry.browser.distributionsourcepackage.DistributionSourcePackageURL"
         />
@@ -612,11 +613,11 @@
         name="+index"
         for="lp.registry.interfaces.ociproject.IOCIProject"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.ociproject.IOCIProject"
         urldata="lp.registry.browser.ociproject.OCIProjectURL"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.ociprojectseries.IOCIProjectSeries"
         path_expression="string:+series/${name}"
         attribute_to_parent="oci_project"
@@ -652,18 +653,18 @@
         provides="zope.traversing.interfaces.IPathAdapter"
         for="lp.registry.interfaces.ociproject.IOCIProject"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.commercialsubscription.ICommercialSubscription"
         path_expression="string:+commercialsubscription/${id}"
         attribute_to_parent="pillar"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.jabber.IJabberID"
         path_expression="string:+jabberid/${jabberid}"
         attribute_to_parent="person"
         rootsite="api"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.pillar.IPillarNameSet"
         path_expression="string:pillars"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -688,7 +689,7 @@
         permission="zope.Public"
         template="../templates/pillar-involvement-portlet.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.karma.IKarmaAction"
         path_expression="name"
         parent_utility="lp.registry.interfaces.karma.IKarmaActionSet"
@@ -704,7 +705,7 @@
         permission="launchpad.Admin"
         template="../../app/templates/generic-edit.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.karma.IKarmaActionSet"
         path_expression="string:karmaaction"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -760,12 +761,12 @@
         classes="
                  PollNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.poll.IPoll"
         path_expression="string:+poll/${name}"
         attribute_to_parent="team"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.poll.IPollSet"
         path_expression="string:+polls"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -816,7 +817,7 @@
         name="+edit"
         for="lp.registry.interfaces.poll.IPollOption"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.poll.IPollOption"
         path_expression="string:+option/${id}"
         attribute_to_parent="poll"
@@ -828,7 +829,7 @@
         permission="launchpad.Edit"
         template="../templates/polloption-edit.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.announcement.IAnnouncement"
         path_expression="string:+announcement/${id}"
         attribute_to_parent="target"
@@ -899,7 +900,7 @@
         permission="launchpad.Edit"
         template="../templates/announcement-add.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.announcement.IAnnouncementSet"
         path_expression="string:+announcements"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -969,7 +970,7 @@
                  TeamOverviewNavigationMenu
                  "
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.person.IPerson"
         path_expression="string:~${name}"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -1532,13 +1533,13 @@
         name="+index"
         for="lp.registry.interfaces.milestone.IMilestoneData"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.milestone.IMilestoneData"
         path_expression="string:+milestone/${name}"
         rootsite="mainsite"
         attribute_to_parent="target"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.milestonetag.IProjectGroupMilestoneTag"
         path_expression="string:+tags/${name}"
         rootsite="mainsite"
@@ -1643,7 +1644,7 @@
         permission="launchpad.View"
         template="../templates/message-moderation.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.wikiname.IWikiName"
         path_expression="string:+wikiname/${id}"
         attribute_to_parent="person"
@@ -1667,7 +1668,7 @@
         module="lp.registry.browser.product"
         classes="ProductNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.product.IProduct"
         path_expression="name"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -1721,7 +1722,7 @@
         for="lp.registry.interfaces.pillar.IPillarPerson"
         permission="zope.Public"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.pillar.IPillarPerson"
         path_expression="string:+sharing/${person/name}"
         rootsite="mainsite"
@@ -1837,12 +1838,12 @@
         permission="launchpad.Edit"
         template="../../app/templates/generic-edit.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.nameblocklist.INameBlocklistSet"
         path_expression="string:+nameblocklist"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.nameblocklist.INameBlocklist"
         path_expression="string:${id}"
         parent_utility="lp.registry.interfaces.nameblocklist.INameBlocklistSet"
@@ -1896,7 +1897,7 @@
                  ProductSetNavigation
                  "
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.product.IProductSet"
         path_expression="string:projects"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -1953,7 +1954,7 @@
         classes="
                  ProductSeriesNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.productseries.IProductSeries"
         path_expression="name"
         attribute_to_parent="product"
@@ -1962,10 +1963,10 @@
          ITimelinProductSeries. It has been configured to return the
          same url as IProductSeries. This won't cause a problem when
          navigating to the url, since ProductNavigation.traverse() just
-         returns an IProductSeries object, and browser:url only affects
+         returns an IProductSeries object, and lp:url only affects
          canonical_url().
     -->
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.productseries.ITimelineProductSeries"
         path_expression="name"
         attribute_to_parent="product"
@@ -2093,7 +2094,7 @@
         class="lp.answers.browser.questiontarget.AskAQuestionButtonPortlet"
         permission="zope.Public"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.productseries.IProductSeriesSet"
         path_expression="string:series"
         parent_utility="lp.code.interfaces.codehosting.IBazaarApplication"
@@ -2356,7 +2357,7 @@
         classes="
                  DistributionSetNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.distribution.IDistribution"
         path_expression="name"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -2404,7 +2405,7 @@
         classes="
                  SourcePackageNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.sourcepackage.ISourcePackage"
         path_expression="string:+source/${name}"
         attribute_to_parent="distroseries"
@@ -2460,12 +2461,12 @@
         for="lp.registry.interfaces.productrelease.IProductRelease"
         permission="launchpad.View"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.productrelease.IProductRelease"
         path_expression="version"
         attribute_to_parent="productseries"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.productrelease.IProductReleaseFile"
         path_expression="string:+file/${libraryfile/filename}"
         rootsite="api"
@@ -2534,7 +2535,7 @@
         name="+index"
         for="lp.registry.interfaces.distributionmirror.IDistributionMirror"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.distributionmirror.IDistributionMirror"
         path_expression="string:+mirror/${name}"
         attribute_to_parent="distribution"
@@ -2631,7 +2632,7 @@
         permission="launchpad.AnyPerson"
         template="../templates/sourcepackage-remove-packaging.pt"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.persondistributionsourcepackage.IPersonDistributionSourcePackage"
         path_expression="string:${distro_source_package/distribution/name}/+source/${distro_source_package/sourcepackagename/name}"
         attribute_to_parent="person"
@@ -2646,7 +2647,7 @@
         classes="
                  PersonDistributionSourcePackageFacets"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.personociproject.IPersonOCIProject"
         path_expression="string:${oci_project/pillar/name}/+oci/${oci_project/name}"
         attribute_to_parent="person"
@@ -2655,7 +2656,7 @@
         module="lp.registry.browser.personociproject"
         classes="PersonOCIProjectNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.personproduct.IPersonProduct"
         path_expression="product/name"
         attribute_to_parent="person"
@@ -2670,13 +2671,13 @@
         classes="
                  PersonProductFacets"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.ssh.ISSHKey"
         path_expression="string:+ssh-keys/${id}"
         rootsite="api"
         attribute_to_parent="person"
         />
-    <browser:url
+    <lp:url
         for="lp.registry.interfaces.gpg.IGPGKey"
         path_expression="string:+gpg-keys/${fingerprint}"
         rootsite="api"
diff --git a/lib/lp/services/auth/configure.zcml b/lib/lp/services/auth/configure.zcml
index 984737e..6ae2d20 100644
--- a/lib/lp/services/auth/configure.zcml
+++ b/lib/lp/services/auth/configure.zcml
@@ -28,7 +28,7 @@
         <allow interface="lp.services.auth.interfaces.IAccessTokenSet" />
     </lp:securedutility>
 
-    <browser:url
+    <lp:url
         for="lp.services.auth.interfaces.IAccessToken"
         path_expression="string:+access-token/${id}"
         attribute_to_parent="target" />
diff --git a/lib/lp/services/features/browser/configure.zcml b/lib/lp/services/features/browser/configure.zcml
index 344dbf8..9346db5 100644
--- a/lib/lp/services/features/browser/configure.zcml
+++ b/lib/lp/services/features/browser/configure.zcml
@@ -6,10 +6,11 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
     i18n_domain="launchpad">
 
-  <browser:url
+  <lp:url
       for="lp.services.features.interfaces.IFeatureRules"
       path_expression="string:+feature-rules"
       parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/>
diff --git a/lib/lp/services/identity/configure.zcml b/lib/lp/services/identity/configure.zcml
index c04e72d..690b52f 100644
--- a/lib/lp/services/identity/configure.zcml
+++ b/lib/lp/services/identity/configure.zcml
@@ -40,7 +40,7 @@
             interface="lp.services.identity.interfaces.emailaddress.IEmailAddressSet"/>
     </lp:securedutility>
 
-    <browser:url
+    <lp:url
         for="lp.services.identity.interfaces.emailaddress.IEmailAddress"
         path_expression="string:+email/${email}"
         rootsite="api"
diff --git a/lib/lp/services/messages/browser/configure.zcml b/lib/lp/services/messages/browser/configure.zcml
index 0413ba9..a86cecf 100644
--- a/lib/lp/services/messages/browser/configure.zcml
+++ b/lib/lp/services/messages/browser/configure.zcml
@@ -1,9 +1,9 @@
 <configure
   xmlns="http://namespaces.zope.org/zope";
-  xmlns:browser="http://namespaces.zope.org/browser";
   xmlns:i18n="http://namespaces.zope.org/i18n";
+  xmlns:lp="http://namespaces.canonical.com/lp";
   i18n_domain="launchpad">
-  <browser:url
+  <lp:url
     for="lp.services.messages.interfaces.messagerevision.IMessageRevision"
     path_expression="string:revisions/${revision}"
     attribute_to_parent="message_implementation" />
diff --git a/lib/lp/services/statistics/browser/configure.zcml b/lib/lp/services/statistics/browser/configure.zcml
index d30cc51..04ab11e 100644
--- a/lib/lp/services/statistics/browser/configure.zcml
+++ b/lib/lp/services/statistics/browser/configure.zcml
@@ -2,9 +2,10 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
     i18n_domain="launchpad">
-    <browser:url
+    <lp:url
         for="lp.services.statistics.interfaces.statistic.ILaunchpadStatisticSet"
         path_expression="string:+statistics"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/>
@@ -20,4 +21,4 @@
             name="+index"
             template="../templates/launchpadstatisticset-index.pt"/>
     </browser:pages>
-</configure>
\ No newline at end of file
+</configure>
diff --git a/lib/lp/services/temporaryblobstorage/configure.zcml b/lib/lp/services/temporaryblobstorage/configure.zcml
index e696b52..598ebfa 100644
--- a/lib/lp/services/temporaryblobstorage/configure.zcml
+++ b/lib/lp/services/temporaryblobstorage/configure.zcml
@@ -43,12 +43,12 @@
       classes="TemporaryBlobStorageNavigation"
       />
 
-  <browser:url
+  <lp:url
       for="lp.services.temporaryblobstorage.interfaces.ITemporaryBlobStorage"
       urldata="lp.services.temporaryblobstorage.browser.TemporaryBlobStorageURL"
       parent_utility="lp.services.webservice.interfaces.IWebServiceApplication"/>
 
-  <browser:url
+  <lp:url
       for="lp.services.temporaryblobstorage.interfaces.ITemporaryStorageManager"
       path_expression="string:temporary-blobs"
       parent_utility="lp.services.webservice.interfaces.IWebServiceApplication"/>
diff --git a/lib/lp/services/verification/browser/configure.zcml b/lib/lp/services/verification/browser/configure.zcml
index 856da04..a3a0765 100644
--- a/lib/lp/services/verification/browser/configure.zcml
+++ b/lib/lp/services/verification/browser/configure.zcml
@@ -2,9 +2,9 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
-    xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     i18n_domain="launchpad">
-    <browser:url
+    <lp:url
       for="lp.services.verification.interfaces.logintoken.ILoginTokenSet"
       path_expression="string:token"
       parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -14,7 +14,7 @@
         <browser:defaultView
             for="lp.services.verification.interfaces.logintoken.ILoginToken"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.services.verification.interfaces.logintoken.ILoginToken"
             path_expression="token"
             parent_utility="lp.services.verification.interfaces.logintoken.ILoginTokenSet"/>
diff --git a/lib/lp/services/webapp/doc/canonical_url.rst b/lib/lp/services/webapp/doc/canonical_url.rst
index 32123e4..f2825cc 100644
--- a/lib/lp/services/webapp/doc/canonical_url.rst
+++ b/lib/lp/services/webapp/doc/canonical_url.rst
@@ -3,10 +3,10 @@ Canonical URLs
 
 https://launchpad.canonical.com/CanonicalUrls
 
-The browser:url ZCML directive
-------------------------------
+The lp:url ZCML directive
+-------------------------
 
-The browser:url directive registers an ICanonicalUrlData adapter.
+The lp:url directive registers an ICanonicalUrlData adapter.
 
 In this test, we'll use a URL hierarchy /countries/England/+towns/London
 
@@ -31,7 +31,7 @@ will put in a temporary module.
     ...
 
     >>> class ITown(Interface):
-    ...     """Dummy interface for use in browser:url tests."""
+    ...     """Dummy interface for use in lp:url tests."""
     ...
     ...     __module__ = module.__name__
     ...     country = Attribute("the country the town is in")
@@ -118,16 +118,16 @@ Next, we check there are no ICanonicalUrlData adapters for these objects.
     ...     assert ICanonicalUrlData(obj, None) is None
     ...
 
-Configure a browser:url for ITown.  Our first attempt fails because we
+Configure a lp:url for ITown.  Our first attempt fails because we
 mistyped 'countryOopsTypo', and there is no such name in ITown.
 
     >>> from zope.configuration import xmlconfig
     >>> zcmlcontext = xmlconfig.string(
     ...     """
-    ... <configure xmlns:browser="http://namespaces.zope.org/browser";>
+    ... <configure xmlns:lp="http://namespaces.canonical.com/lp";>
     ...   <include package="zope.component" file="meta.zcml" />
     ...   <include package="lp.services.webapp" file="meta.zcml" />
-    ...   <browser:url
+    ...   <lp:url
     ...       for="{module_name}.ITown"
     ...       path_expression="string:+towns/${{name}}"
     ...       attribute_to_parent="countryOopsTypo"
@@ -144,9 +144,9 @@ mistyped 'countryOopsTypo', and there is no such name in ITown.
 
     >>> zcmlcontext = xmlconfig.string(
     ...     """
-    ... <configure xmlns:browser="http://namespaces.zope.org/browser";>
+    ... <configure xmlns:lp="http://namespaces.canonical.com/lp";>
     ...   <include package="lp.services.webapp" file="meta.zcml" />
-    ...   <browser:url
+    ...   <lp:url
     ...       for="{module_name}.ITown"
     ...       path_expression="string:+towns/${{name}}"
     ...       attribute_to_parent="country"
@@ -179,7 +179,7 @@ at it from zcml.  I'll put it in our temporary module.
     ...     """
     ... <configure
     ...     xmlns="http://namespaces.zope.org/zope";
-    ...     xmlns:browser="http://namespaces.zope.org/browser";>
+    ...     xmlns:lp="http://namespaces.canonical.com/lp";>
     ...   <include package="zope.component" file="meta.zcml" />
     ...   <include package="lp.services.webapp" file="meta.zcml" />
     ...   <configure package="zope.security">
@@ -189,7 +189,7 @@ at it from zcml.  I'll put it in our temporary module.
     ...       provides="{module_name}.ICountrySet"
     ...       component="{module_name}.countryset_instance"
     ...       />
-    ...   <browser:url
+    ...   <lp:url
     ...       for="{module_name}.ICountry"
     ...       path_expression="name"
     ...       parent_utility="{module_name}.ICountrySet"
@@ -211,7 +211,7 @@ Now, there is an ICanonicalUrlData registered for ICountry.
     >>> country_urldata.inside is countryset_instance
     True
 
-We need to specify a browser:url for ICountrySet.  We'll use a variation on
+We need to specify an lp:url for ICountrySet.  We'll use a variation on
 the zcml that allows us to directly set an ICanonicalUrlData adapter to use.
 The adapter will make its parent the ILaunchpadRoot utility.  This is not the
 normal way to do this.  Normally, we'd just say
@@ -243,9 +243,9 @@ in our temporary module.
 
     >>> zcmlcontext = xmlconfig.string(
     ...     """
-    ... <configure xmlns:browser="http://namespaces.zope.org/browser";>
+    ... <configure xmlns:lp="http://namespaces.canonical.com/lp";>
     ...   <include package="lp.services.webapp" file="meta.zcml" />
-    ...   <browser:url
+    ...   <lp:url
     ...       for="{module_name}.ICountrySet"
     ...       urldata="{module_name}.CountrySetUrl"
     ...       />
@@ -485,14 +485,14 @@ And if the configuration does provide a rootsite:
     ...     """
     ... <configure
     ...     xmlns="http://namespaces.zope.org/zope";
-    ...     xmlns:browser="http://namespaces.zope.org/browser";>
+    ...     xmlns:lp="http://namespaces.canonical.com/lp";>
     ...   <include package="zope.component" file="meta.zcml" />
     ...   <include package="lp.services.webapp" file="meta.zcml" />
     ...   <utility
     ...       provides="{module_name}.ICountrySet"
     ...       component="{module_name}.countryset_instance"
     ...       />
-    ...   <browser:url
+    ...   <lp:url
     ...       for="{module_name}.ICountry"
     ...       path_expression="name"
     ...       parent_utility="{module_name}.ICountrySet"
diff --git a/lib/lp/services/webapp/doc/zcmldirectives.rst b/lib/lp/services/webapp/doc/zcmldirectives.rst
index 49e5434..ec7708e 100644
--- a/lib/lp/services/webapp/doc/zcmldirectives.rst
+++ b/lib/lp/services/webapp/doc/zcmldirectives.rst
@@ -6,7 +6,7 @@ We have a bunch of custom zcml directives in Launchpad.
 Canonical URLs
 --------------
 
-See canonical_url.rst for information and tests of the browser:url directive.
+See canonical_url.rst for information and tests of the lp:url directive.
 
 
 A zcml context for zcml directive unittests
diff --git a/lib/lp/services/webapp/meta.zcml b/lib/lp/services/webapp/meta.zcml
index 04d8934..8d59765 100644
--- a/lib/lp/services/webapp/meta.zcml
+++ b/lib/lp/services/webapp/meta.zcml
@@ -5,7 +5,7 @@
 <configure xmlns="http://namespaces.zope.org/meta";>
 
   <directive
-      namespace="http://namespaces.zope.org/browser";
+      namespace="http://namespaces.canonical.com/lp";
       name="url"
       schema="lp.services.webapp.metazcml.IURLDirective"
       handler="lp.services.webapp.metazcml.url"
diff --git a/lib/lp/services/webapp/metazcml.py b/lib/lp/services/webapp/metazcml.py
index 6f34f26..5576f9f 100644
--- a/lib/lp/services/webapp/metazcml.py
+++ b/lib/lp/services/webapp/metazcml.py
@@ -403,7 +403,7 @@ def url(
     parent_utility=None,
     rootsite=None,
 ):
-    """browser:url directive handler."""
+    """lp:url directive handler."""
     if not attribute_to_parent and not parent_utility and not urldata:
         raise TypeError(
             "Must provide attribute_to_parent, urldata or parent_utility."
diff --git a/lib/lp/services/webhooks/configure.zcml b/lib/lp/services/webhooks/configure.zcml
index d35fe99..f93d21c 100644
--- a/lib/lp/services/webhooks/configure.zcml
+++ b/lib/lp/services/webhooks/configure.zcml
@@ -70,7 +70,7 @@
         factory="lp.services.webhooks.payload.WebhookAbsoluteURL"
         />
 
-    <browser:url
+    <lp:url
        for="lp.services.webhooks.interfaces.IWebhook"
        path_expression="string:+webhook/${id}"
        attribute_to_parent="target"
@@ -78,7 +78,7 @@
     <browser:navigation
         module="lp.services.webhooks.browser" classes="WebhookNavigation" />
 
-    <browser:url
+    <lp:url
        for="lp.services.webhooks.interfaces.IWebhookDeliveryJob"
        path_expression="string:+delivery/${job_id}"
        attribute_to_parent="webhook"
diff --git a/lib/lp/services/worlddata/browser/configure.zcml b/lib/lp/services/worlddata/browser/configure.zcml
index 2e94fa3..9315d35 100644
--- a/lib/lp/services/worlddata/browser/configure.zcml
+++ b/lib/lp/services/worlddata/browser/configure.zcml
@@ -6,16 +6,17 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
     i18n_domain="launchpad">
 
-    <browser:url
+    <lp:url
         for="lp.services.worlddata.interfaces.country.ICountry"
         path_expression="iso3166code2"
         parent_utility="lp.services.worlddata.interfaces.country.ICountrySet"
         rootsite="mainsite" />
 
-    <browser:url
+    <lp:url
         for="lp.services.worlddata.interfaces.country.ICountrySet"
         path_expression="string:+countries"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
diff --git a/lib/lp/snappy/browser/configure.zcml b/lib/lp/snappy/browser/configure.zcml
index 21d849f..f2d8fa3 100644
--- a/lib/lp/snappy/browser/configure.zcml
+++ b/lib/lp/snappy/browser/configure.zcml
@@ -6,10 +6,10 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
-    xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     i18n_domain="launchpad">
     <facet facet="overview">
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snap.ISnap"
             urldata="lp.snappy.browser.snap.SnapURL" />
         <browser:defaultView
@@ -68,7 +68,7 @@
             permission="launchpad.AnyPerson"
             name="+addsubscriber"
             template="../../app/templates/generic-edit.pt"/>
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snapsubscription.ISnapSubscription"
             path_expression="string:+subscription/${person/name}"
             attribute_to_parent="snap"
@@ -127,15 +127,15 @@
             for="lp.snappy.interfaces.snap.ISnap"
             factory="lp.snappy.browser.snap.SnapBreadcrumb"
             permission="zope.Public" />
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snap.ISnapSet"
             path_expression="string:+snaps"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" />
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snap.ISnapBuildRequest"
             path_expression="string:+build-request/${id}"
             attribute_to_parent="snap" />
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snapbuild.ISnapBuild"
             path_expression="string:+build/${id}"
             attribute_to_parent="snap" />
@@ -177,22 +177,22 @@
             for="lp.snappy.interfaces.snapbuild.ISnapBuild"
             factory="lp.services.webapp.breadcrumb.TitleBreadcrumb"
             permission="zope.Public" />
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snappyseries.ISnappySeries"
             path_expression="name"
             parent_utility="lp.snappy.interfaces.snappyseries.ISnappySeriesSet" />
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snappyseries.ISnappySeriesSet"
             path_expression="string:+snappy-series"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" />
         <browser:navigation
             module="lp.snappy.browser.snappyseries"
             classes="SnappySeriesSetNavigation" />
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snapbase.ISnapBase"
             path_expression="name"
             parent_utility="lp.snappy.interfaces.snapbase.ISnapBaseSet" />
-        <browser:url
+        <lp:url
             for="lp.snappy.interfaces.snapbase.ISnapBaseSet"
             path_expression="string:+snap-bases"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot" />
diff --git a/lib/lp/soyuz/browser/configure.zcml b/lib/lp/soyuz/browser/configure.zcml
index ea111dd..fa27b2a 100644
--- a/lib/lp/soyuz/browser/configure.zcml
+++ b/lib/lp/soyuz/browser/configure.zcml
@@ -6,9 +6,9 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
-    xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     i18n_domain="launchpad">
-    <browser:url
+    <lp:url
       for="lp.soyuz.interfaces.binarypackagename.IBinaryPackageNameSet"
       path_expression="string:binarypackagenames"
       parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -29,7 +29,7 @@
                 name="+record-details"
                 template="../templates/packagepublishing-details.pt"/>
         </browser:pages>
-        <browser:url
+        <lp:url
             for="lp.soyuz.interfaces.publishing.IBinaryPackagePublishingHistory"
             path_expression="string:+binarypub"
             attribute_to_parent="archive"
@@ -125,7 +125,7 @@
                 name="+listing-archive-detailed-selectable"
                 template="../templates/sourcepackagepublishinghistory-listing-archive-detailed.pt"/>
         </browser:pages>
-        <browser:url
+        <lp:url
             for="lp.soyuz.interfaces.publishing.ISourcePackagePublishingHistory"
             path_expression="string:+sourcepub"
             attribute_to_parent="archive"
@@ -136,7 +136,7 @@
     <browser:defaultView
         for="lp.soyuz.interfaces.distroarchseriesbinarypackagerelease.IDistroArchSeriesBinaryPackageRelease"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.distroarchseriesbinarypackagerelease.IDistroArchSeriesBinaryPackageRelease"
         path_expression="version"
         attribute_to_parent="distroarchseriesbinarypackage"/>
@@ -158,11 +158,11 @@
             name="+portlet-details"
             template="../templates/distroarchseriesbinarypackagerelease-portlet-details.pt"/>
     </browser:pages>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.distroarchseriesfilter.IDistroArchSeriesFilter"
         path_expression="string:+source-filter"
         attribute_to_parent="distroarchseries"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.archive.IArchiveSet"
         path_expression="string:archives"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -173,12 +173,12 @@
     <browser:navigation
         module="lp.soyuz.browser.archive"
         classes="ArchiveNavigation" />
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.archive.IPPA"
         path_expression="string:+archive"
         attribute_to_parent="owner"
         urldata="lp.soyuz.browser.archive.PPAURL"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.archive.IDistributionArchive"
         path_expression="string:+archive"
         attribute_to_parent="distribution"
@@ -278,12 +278,12 @@
             ArchiveIndexActionsMenu
             ArchivePackagesActionMenu"
         module="lp.soyuz.browser.archive"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.archivepermission.IArchiveUploader"
         path_expression="string:+upload"
         attribute_to_parent="archive"
         urldata="lp.soyuz.browser.archivepermission.ArchivePermissionURL"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.archivepermission.IArchiveQueueAdmin"
         path_expression="string:+queue-admin"
         attribute_to_parent="archive"
@@ -291,7 +291,7 @@
     <browser:defaultView
         for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.binarypackagebuild.IBinaryPackageBuild"
         urldata="lp.soyuz.browser.build.BuildUrl"/>
     <browser:navigation
@@ -337,7 +337,7 @@
     <browser:defaultView
         for="lp.soyuz.interfaces.distroarchseriesbinarypackage.IDistroArchSeriesBinaryPackage"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.distroarchseriesbinarypackage.IDistroArchSeriesBinaryPackage"
         path_expression="name"
         attribute_to_parent="distroarchseries"/>
@@ -362,11 +362,11 @@
             name="+portlet-releases"
             template="../templates/distroarchseriesbinarypackage-portlet-releases.pt"/>
     </browser:pages>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.archivesubscriber.IArchiveSubscriber"
         path_expression="string:+subscriptions/${subscriber/name}"
         attribute_to_parent="archive"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.archivesubscriber.IPersonalArchiveSubscription"
         path_expression="string:+archivesubscriptions/${archive/id}"
         attribute_to_parent="subscriber"/>
@@ -394,7 +394,7 @@
     <browser:defaultView
         for="lp.soyuz.interfaces.distributionsourcepackagerelease.IDistributionSourcePackageRelease"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.distributionsourcepackagerelease.IDistributionSourcePackageRelease"
         path_expression="version"
         attribute_to_parent="sourcepackage"/>
@@ -425,7 +425,7 @@
     <browser:defaultView
         for="lp.soyuz.interfaces.distroseriesbinarypackage.IDistroSeriesBinaryPackage"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.distroseriesbinarypackage.IDistroSeriesBinaryPackage"
         path_expression="string:+package/${name}"
         attribute_to_parent="distroseries"/>
@@ -458,7 +458,7 @@
             module="lp.soyuz.browser.distroarchseries"
             classes="
                 DistroArchSeriesActionMenu"/>
-        <browser:url
+        <lp:url
             for="lp.soyuz.interfaces.distroarchseries.IDistroArchSeries"
             path_expression="architecturetag"
             attribute_to_parent="distroseries"/>
@@ -645,7 +645,7 @@
                 template="../templates/distroseries-portlet-latestuploads.pt"/>
         </browser:pages>
 
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.packageset.IPackagesetSet"
         path_expression="string:package-sets"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -654,17 +654,17 @@
         module="lp.soyuz.browser.packageset"
         classes="PackagesetSetNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.packageset.IPackageset"
         path_expression="string:${distroseries/distribution/name}/${distroseries/name}/${name}"
         parent_utility="lp.soyuz.interfaces.packageset.IPackagesetSet"
         />
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.queue.IPackageUpload"
         path_expression="string:+upload/${id}"
         attribute_to_parent="distroseries"
         />
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.queue.IPackageUploadLog"
         path_expression="string:+log/${id}"
         attribute_to_parent="package_upload"
@@ -673,12 +673,12 @@
         module="lp.soyuz.browser.queue"
         classes="PackageUploadNavigation"
         />
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.archivedependency.IArchiveDependency"
         path_expression="string:+dependency/${dependency/id}"
         attribute_to_parent="parent"
         />
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.binarypackagerelease.IBinaryPackageReleaseDownloadCount"
         path_expression="string:+binaryhits/${binary_package_release/name}/${binary_package_release/version}/${binary_package_release/build/distro_arch_series/architecturetag}/${day}/${country_code}"
         attribute_to_parent="archive"
@@ -692,7 +692,7 @@
             template="../templates/packagerelationship-list.pt"
          />
     </browser:pages>
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.livefs.ILiveFS"
         path_expression="string:+livefs/${distro_series/distribution/name}/${distro_series/name}/${name}"
         attribute_to_parent="owner"
@@ -747,12 +747,12 @@
         factory="lp.soyuz.browser.livefs.LiveFSBreadcrumb"
         permission="zope.Public"
         />
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.livefs.ILiveFSSet"
         path_expression="string:livefses"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
         />
-    <browser:url
+    <lp:url
         for="lp.soyuz.interfaces.livefsbuild.ILiveFSBuild"
         path_expression="string:+build/${id}"
         attribute_to_parent="livefs"
diff --git a/lib/lp/soyuz/model/archive.py b/lib/lp/soyuz/model/archive.py
index 3eb9387..32b23dd 100644
--- a/lib/lp/soyuz/model/archive.py
+++ b/lib/lp/soyuz/model/archive.py
@@ -364,7 +364,7 @@ class Archive(SQLBase):
         SQLBase._init(self, *args, **kw)
 
         # Provide the additional marker interface depending on what type
-        # of archive this is.  See also the browser:url declarations in
+        # of archive this is.  See also the lp:url declarations in
         # zcml/archive.zcml.
         if self.is_ppa:
             alsoProvides(self, IPPA)
diff --git a/lib/lp/soyuz/model/archivepermission.py b/lib/lp/soyuz/model/archivepermission.py
index 86ca48c..6697808 100644
--- a/lib/lp/soyuz/model/archivepermission.py
+++ b/lib/lp/soyuz/model/archivepermission.py
@@ -118,7 +118,7 @@ class ArchivePermission(StormBase):
 
     def __storm_loaded__(self):
         # Provide the additional marker interface depending on what type
-        # of archive this is.  See also the browser:url declarations in
+        # of archive this is.  See also the lp:url declarations in
         # zcml/archivepermission.zcml.
         if self.permission == ArchivePermissionType.UPLOAD:
             alsoProvides(self, IArchiveUploader)
diff --git a/lib/lp/testopenid/browser/configure.zcml b/lib/lp/testopenid/browser/configure.zcml
index 79f46c9..a1cc217 100644
--- a/lib/lp/testopenid/browser/configure.zcml
+++ b/lib/lp/testopenid/browser/configure.zcml
@@ -5,6 +5,7 @@
 <configure
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     xmlns:i18n="http://namespaces.zope.org/i18n";
     i18n_domain="launchpad">
 
@@ -43,7 +44,7 @@
         name="+auth"
         />
 
-    <browser:url
+    <lp:url
         for="..interfaces.server.ITestOpenIDPersistentIdentity"
         path_expression="string:${openid_identifier}"
         parent_utility="..interfaces.server.ITestOpenIDApplication"
diff --git a/lib/lp/translations/browser/configure.zcml b/lib/lp/translations/browser/configure.zcml
index 61fcbc1..a96acd0 100644
--- a/lib/lp/translations/browser/configure.zcml
+++ b/lib/lp/translations/browser/configure.zcml
@@ -6,10 +6,10 @@
     xmlns="http://namespaces.zope.org/zope";
     xmlns:browser="http://namespaces.zope.org/browser";
     xmlns:i18n="http://namespaces.zope.org/i18n";
-    xmlns:xmlrpc="http://namespaces.zope.org/xmlrpc";
+    xmlns:lp="http://namespaces.canonical.com/lp";
     i18n_domain="launchpad">
 <facet facet="translations">
-    <browser:url
+    <lp:url
         for="lp.translations.interfaces.translations.IRosettaApplication"
         path_expression="string:translations"
         parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/>
@@ -68,7 +68,7 @@
         <browser:defaultView
             for="lp.translations.interfaces.translator.ITranslator"
             name="+admin"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.translator.ITranslator"
             path_expression="string:${language/code}"
             attribute_to_parent="translationgroup"
@@ -99,7 +99,7 @@
         <browser:defaultView
             for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueueEntry"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueueEntry"
             path_expression="string:${id}"
             parent_utility="lp.translations.interfaces.translationimportqueue.ITranslationImportQueue"/>
@@ -115,7 +115,7 @@
             name="+portlet-details"
             class="lp.translations.browser.translationimportqueue.TranslationImportQueueEntryView"
             template="../templates/translationimportqueueentry-portlet-details.pt"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.translationimportqueue.ITranslationImportQueue"
             path_expression="string:+imports"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"/>
@@ -128,7 +128,7 @@
             class="lp.translations.browser.translationimportqueue.TranslationImportQueueView"
             permission="zope.Public"
             template="../templates/translationimportqueue-index.pt"/>
-    <browser:url
+    <lp:url
         for="lp.translations.interfaces.distroserieslanguage.IDistroSeriesLanguage"
         path_expression="string:+lang/${language/code}"
         attribute_to_parent="distroseries"
@@ -156,7 +156,7 @@
             module="lp.translations.browser.pofile"
             classes="
                 POFileNavigation"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.pofile.IPOFile"
             path_expression="language/code"
             attribute_to_parent="potemplate"
@@ -215,7 +215,7 @@
             permission="zope.Public"
             template="../templates/pofile-filter.pt"
             class="lp.translations.browser.pofile.POFileFilteredView"/>
-    <browser:url
+    <lp:url
         for="lp.translations.interfaces.productserieslanguage.IProductSeriesLanguage"
         path_expression="string:+lang/${language/code}"
         attribute_to_parent="parent"
@@ -252,7 +252,7 @@
             classes="
                 LanguageSetContextMenu
                 LanguageNavigationMenu"/>
-        <browser:url
+        <lp:url
             for="lp.services.worlddata.interfaces.language.ILanguage"
             path_expression="code"
             parent_utility="lp.services.worlddata.interfaces.language.ILanguageSet"
@@ -283,7 +283,7 @@
         <browser:defaultView
             for="lp.services.worlddata.interfaces.language.ILanguageSet"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.services.worlddata.interfaces.language.ILanguageSet"
             path_expression="string:+languages"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -362,10 +362,10 @@
         <browser:menus
             module="lp.translations.browser.potemplate"
             classes="POTemplateMenu"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.potemplate.IPOTemplateSubset"
             urldata="lp.translations.browser.potemplate.POTemplateSubsetURL"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.potemplate.IPOTemplate"
             urldata="lp.translations.browser.potemplate.POTemplateURL"/>
         <browser:defaultView
@@ -385,7 +385,7 @@
         <browser:defaultView
             for="lp.translations.interfaces.translationgroup.ITranslationGroup"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.translationgroup.ITranslationGroup"
             path_expression="name"
             rootsite="translations"
@@ -427,7 +427,7 @@
             permission="launchpad.Edit"
             name="+object-reassignment"
             template="../../app/templates/object-reassignment.pt"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.translationgroup.ITranslationGroupSet"
             path_expression="string:+groups"
             parent_utility="lp.services.webapp.interfaces.ILaunchpadRoot"
@@ -447,7 +447,7 @@
             permission="zope.Public"
             template="../templates/translationgroups-index.pt"
             name="+index"/>
-        <browser:url
+        <lp:url
             for="lp.translations.interfaces.translationmessage.ITranslationMessage"
             path_expression="string:${sequence}"
             attribute_to_parent="browser_pofile"
@@ -845,7 +845,7 @@
     <browser:defaultView
         for="lp.translations.interfaces.customlanguagecode.ICustomLanguageCode"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.translations.interfaces.customlanguagecode.ICustomLanguageCode"
         path_expression="string:+customcode/${language_code}"
         attribute_to_parent="translation_target"
@@ -884,7 +884,7 @@
     <browser:defaultView
         for="lp.translations.interfaces.translationtemplatesbuild.ITranslationTemplatesBuild"
         name="+index"/>
-    <browser:url
+    <lp:url
         for="lp.translations.interfaces.translationtemplatesbuild.ITranslationTemplatesBuild"
         path_expression="string:+translation-templates-build/${id}"
         attribute_to_parent="branch"/>