Bug 1366668 - Part 2: Apply new toolbar visual design on tablet. r?nechen,walkingice draft
authorjwu <topwu.tw@gmail.com>
Fri, 04 Aug 2017 14:47:10 +0800
changeset 621004 27a61a802b6c127076c075880cbe3c16f3d2c20b
parent 621003 5e57f82143f8d8bd08a66dbb12a9a286d56ec6e4
child 621005 37b455f707bf6c7852707bd8da545f707f570b51
push id72220
push userbmo:topwu.tw@gmail.com
push dateFri, 04 Aug 2017 06:56:19 +0000
reviewersnechen, walkingice
bugs1366668
milestone57.0a1
Bug 1366668 - Part 2: Apply new toolbar visual design on tablet. r?nechen,walkingice MozReview-Commit-ID: DikmnNSpTQt
mobile/android/app/src/australis/java/org/mozilla/gecko/toolbar/ToolbarRoundButton.java
mobile/android/app/src/australis/res/values-large/styles.xml
mobile/android/app/src/australis/res/values/colors.xml
mobile/android/app/src/main/res/values/attrs.xml
mobile/android/app/src/photon/java/org/mozilla/gecko/toolbar/ToolbarRoundButton.java
mobile/android/app/src/photon/res/color/action_bar_menu_item_colors.xml
mobile/android/app/src/photon/res/color/tab_strip_item_title.xml
mobile/android/app/src/photon/res/drawable-large-v11/url_bar_nav_button.xml
mobile/android/app/src/photon/res/drawable/action_bar_button.xml
mobile/android/app/src/photon/res/drawable/tab_strip_item_bg.xml
mobile/android/app/src/photon/res/drawable/url_bar_forward_button.xml
mobile/android/app/src/photon/res/layout-large-v11/browser_toolbar.xml
mobile/android/app/src/photon/res/layout/browser_toolbar.xml
mobile/android/app/src/photon/res/layout/tab_strip_inner.xml
mobile/android/app/src/photon/res/layout/tab_strip_item.xml
mobile/android/app/src/photon/res/layout/tab_strip_item_view.xml
mobile/android/app/src/photon/res/layout/toolbar_display_layout.xml
mobile/android/app/src/photon/res/layout/toolbar_edit_layout.xml
mobile/android/app/src/photon/res/values-large-v17/styles.xml
mobile/android/app/src/photon/res/values-large/dimens.xml
mobile/android/app/src/photon/res/values-large/styles.xml
mobile/android/app/src/photon/res/values-v11/styles.xml
mobile/android/app/src/photon/res/values-v17/styles.xml
mobile/android/app/src/photon/res/values/colors.xml
mobile/android/app/src/photon/res/values/dimens.xml
mobile/android/app/src/photon/res/values/styles.xml
mobile/android/base/java/org/mozilla/gecko/tabs/TabStripView.java
mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbarPhoneBase.java
mobile/android/base/java/org/mozilla/gecko/toolbar/NavButton.java
mobile/android/base/moz.build
new file mode 100644
--- /dev/null
+++ b/mobile/android/app/src/australis/java/org/mozilla/gecko/toolbar/ToolbarRoundButton.java
@@ -0,0 +1,25 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.gecko.toolbar;
+
+import android.content.Context;
+import android.util.AttributeSet;
+
+import org.mozilla.gecko.widget.themed.ThemedImageButton;
+
+class ToolbarRoundButton extends ThemedImageButton {
+
+    public ToolbarRoundButton(Context context) {
+        this(context, null);
+    }
+
+    public ToolbarRoundButton(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public ToolbarRoundButton(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+}
--- a/mobile/android/app/src/australis/res/values-large/styles.xml
+++ b/mobile/android/app/src/australis/res/values-large/styles.xml
@@ -11,18 +11,16 @@
 
     <!-- If this style wasn't actually shared outside the
          url bar, this name could be improved (bug 1197424). -->
     <style name="UrlBar.ImageButton.BrowserToolbarColors">
         <item name="drawableTintList">@color/action_bar_menu_item_colors</item>
     </style>
 
     <style name="UrlBar.Button.Container">
-        <item name="android:layout_marginTop">6dp</item>
-        <item name="android:layout_marginBottom">6dp</item>
         <!-- Start with forward hidden -->
         <item name="android:orientation">horizontal</item>
     </style>
 
     <style name="TabsItem">
          <item name="android:nextFocusDown">@+id/close</item>
     </style>
 
--- a/mobile/android/app/src/australis/res/values/colors.xml
+++ b/mobile/android/app/src/australis/res/values/colors.xml
@@ -30,16 +30,25 @@
 
   <color name="url_bar_shadow_private">#7878A5</color>
 
   <!-- Restricted profiles palette -->
 
   <color name="restricted_profile_background_gold">#ffffcb51</color>
   <color name="restricted_profile_background_green">#1aaa86</color>
 
+  <!-- Status bar background color -->
+  <color name="status_bar_bg_color">@android:color/transparent</color>
+  <color name="status_bar_bg_color_private">@android:color/transparent</color>
+  <color name="status_bar_bg_color_tablet">@android:color/transparent</color>
+
+  <!-- Toolbar menu item tint color -->
+  <color name="menu_item_tint">@color/toolbar_icon_grey</color>
+  <color name="menu_item_tint_private">@color/toolbar_icon_grey</color>
+
   <!-- Non-palette colors -->
 
   <!-- Synced w/ toolbar_grey -->
   <color name="background_normal_lwt">#DDEBEBF0</color>
 
   <color name="highlight">#33000000</color>
   <color name="highlight_focused">#1A000000</color>
   <color name="highlight_dark">#33FFFFFF</color>
--- a/mobile/android/app/src/main/res/values/attrs.xml
+++ b/mobile/android/app/src/main/res/values/attrs.xml
@@ -171,10 +171,15 @@
              otherwise only available on API 21+.
 
              Using this attribute is mutually exclusive with android:tint
              and setting colorFilters in code. This is because on pre-Lollipop,
              android:tint and DrawableCompat.tint* uses colorFilters under the hood. -->
         <attr name="drawableTintList" format="color" />
     </declare-styleable>
 
+    <declare-styleable name="NavButton">
+        <attr name="borderColor" format="color" />
+        <attr name="borderColorPrivate" format="color" />
+    </declare-styleable>
+
 </resources>
 
new file mode 100644
--- /dev/null
+++ b/mobile/android/app/src/photon/java/org/mozilla/gecko/toolbar/ToolbarRoundButton.java
@@ -0,0 +1,55 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+package org.mozilla.gecko.toolbar;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Path;
+import android.graphics.RectF;
+import android.util.AttributeSet;
+
+import org.mozilla.gecko.R;
+
+class ToolbarRoundButton extends ShapedButton {
+
+    public ToolbarRoundButton(Context context) {
+        this(context, null);
+    }
+
+    public ToolbarRoundButton(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public ToolbarRoundButton(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+
+        setPrivateMode(false);
+    }
+
+    @Override
+    protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) {
+        super.onSizeChanged(width, height, oldWidth, oldHeight);
+
+        mPath.reset();
+        mPath.setFillType(Path.FillType.INVERSE_EVEN_ODD);
+
+        final Resources res = getResources();
+        final int vSpace = res.getDimensionPixelSize(R.dimen.browser_toolbar_image_button_v_spacing);
+        final int hSpace = res.getDimensionPixelSize(R.dimen.browser_toolbar_image_button_h_spacing);
+        final RectF rect = new RectF(hSpace, vSpace, width - hSpace, height - vSpace);
+        final int radius = res.getDimensionPixelSize(R.dimen.browser_toolbar_menu_radius);
+        mPath.addRoundRect(rect, radius, radius, Path.Direction.CW);
+    }
+
+    @Override
+    public void onLightweightThemeChanged() {
+        setBackgroundResource(R.drawable.url_bar_action_button);
+    }
+
+    @Override
+    public void onLightweightThemeReset() {
+        setBackgroundResource(R.drawable.url_bar_action_button);
+    }
+}
--- a/mobile/android/app/src/photon/res/color/action_bar_menu_item_colors.xml
+++ b/mobile/android/app/src/photon/res/color/action_bar_menu_item_colors.xml
@@ -3,20 +3,20 @@
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:gecko="http://schemas.android.com/apk/res-auto">
 
     <item gecko:state_private="true"
           android:state_enabled="false"
-          android:color="@color/photon_icon_private"/>
+          android:color="@color/photon_icon_private_disabled"/>
 
     <item gecko:state_private="true"
           android:state_enabled="true"
           android:color="@color/photon_icon_private"/>
 
     <item android:state_enabled="false"
-          android:color="@color/photon_icon"/>
+          android:color="@color/photon_icon_disabled"/>
 
     <item android:color="@color/photon_icon"/>
 
 </selector>
--- a/mobile/android/app/src/photon/res/color/tab_strip_item_title.xml
+++ b/mobile/android/app/src/photon/res/color/tab_strip_item_title.xml
@@ -4,17 +4,17 @@
 
     <item android:color="@color/photon_text_main_private"
           android:state_checked="true"
           gecko:state_private="true"/>
 
     <item android:color="@color/photon_text_secondary_private"
           gecko:state_private="true"/>
 
-    <item android:color="@color/photon_text_main_private"
+    <item android:color="@color/photon_text_main"
           android:state_checked="true"
           gecko:state_dark="true"/>
 
     <item android:color="@color/photon_text_secondary_private"
           gecko:state_dark="true"/>
 
     <item android:color="@color/photon_text_main"
           android:state_checked="true"/>
--- a/mobile/android/app/src/photon/res/drawable-large-v11/url_bar_nav_button.xml
+++ b/mobile/android/app/src/photon/res/drawable-large-v11/url_bar_nav_button.xml
@@ -1,36 +1,41 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:gecko="http://schemas.android.com/apk/res-auto">
 
-    <!-- private pressed state -->
-    <item gecko:state_private="true"
-          android:state_pressed="true"
-          android:drawable="@color/text_and_tabs_tray_grey"/>
-
-    <!-- focused state -->
-    <item gecko:state_private="true"
-          android:state_focused="true"
-          android:state_pressed="false"
-          android:drawable="@color/placeholder_active_grey"/>
+    <!-- private browsing mode -->
+    <item android:drawable="@color/nav_button_bg_color_private_disabled"
+          android:state_enabled="false"
+          gecko:state_private="true"/>
 
-    <!-- pressed state -->
-    <item android:state_pressed="true"
-          android:drawable="@color/toolbar_grey_pressed"/>
+    <item android:drawable="@color/nav_button_bg_color_private_focused"
+          android:state_enabled="true"
+          android:state_focused="true"
+          gecko:state_private="true"/>
 
-    <!-- focused state -->
-    <item android:state_focused="true"
-          android:state_pressed="false"
-          android:drawable="@color/tablet_highlight_focused"/>
+    <item android:drawable="@color/nav_button_bg_color_private_pressed"
+          android:state_enabled="true"
+          android:state_pressed="true"
+          gecko:state_private="true"/>
 
-    <!-- private browsing mode -->
-    <item gecko:state_private="true"
-          android:drawable="@color/tabs_tray_grey_pressed"/>
+    <item android:drawable="@color/nav_button_bg_color_private"
+          gecko:state_private="true"/>
 
     <!-- normal mode -->
-    <item android:drawable="@color/toolbar_grey"/>
+    <item android:drawable="@color/nav_button_bg_color_disabled"
+          android:state_enabled="false"/>
+
+    <item android:drawable="@color/nav_button_bg_color_focused"
+          android:state_enabled="true"
+          android:state_focused="true"/>
+
+    <item android:drawable="@color/nav_button_bg_color_pressed"
+          android:state_enabled="true"
+          android:state_pressed="true"/>
+
+    <item android:drawable="@color/nav_button_bg_color"/>
 
 </selector>
--- a/mobile/android/app/src/photon/res/drawable/action_bar_button.xml
+++ b/mobile/android/app/src/photon/res/drawable/action_bar_button.xml
@@ -1,28 +1,65 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-<selector xmlns:android="http://schemas.android.com/apk/res/android">
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+          xmlns:gecko="http://schemas.android.com/apk/res-auto">
 
-    <item android:state_enabled="true" android:state_pressed="true">
-        <inset android:insetBottom="@dimen/browser_toolbar_image_button_v_spacing" android:insetTop="@dimen/browser_toolbar_image_button_v_spacing">
+    <item android:state_enabled="true"
+          android:state_pressed="true"
+          gecko:state_private="true">
+        <inset android:insetBottom="@dimen/browser_toolbar_image_button_v_spacing"
+               android:insetLeft="@dimen/browser_toolbar_image_button_h_spacing"
+               android:insetRight="@dimen/browser_toolbar_image_button_h_spacing"
+               android:insetTop="@dimen/browser_toolbar_image_button_v_spacing">
             <shape>
-                <solid android:color="@color/highlight" />
-                <corners android:radius="2dp" />
+                <solid android:color="@color/action_bar_item_bg_color_private_pressed"/>
+                <corners android:radius="@dimen/browser_toolbar_menu_radius"/>
             </shape>
         </inset>
     </item>
 
-    <item android:state_focused="true" android:state_pressed="false">
-        <inset android:insetBottom="@dimen/browser_toolbar_image_button_v_spacing" android:insetTop="@dimen/browser_toolbar_image_button_v_spacing">
+    <item android:state_focused="true"
+          android:state_pressed="false"
+          gecko:state_private="true">
+        <inset android:insetBottom="@dimen/browser_toolbar_image_button_v_spacing"
+               android:insetLeft="@dimen/browser_toolbar_image_button_h_spacing"
+               android:insetRight="@dimen/browser_toolbar_image_button_h_spacing"
+               android:insetTop="@dimen/browser_toolbar_image_button_v_spacing">
             <shape>
-                <solid android:color="@color/highlight_focused" />
-                <corners android:radius="2dp" />
+                <solid android:color="@color/action_bar_item_bg_color_private_pressed"/>
+                <corners android:radius="@dimen/browser_toolbar_menu_radius"/>
             </shape>
         </inset>
     </item>
 
-    <item android:drawable="@android:color/transparent" />
+    <item android:state_enabled="true"
+          android:state_pressed="true">
+        <inset android:insetBottom="@dimen/browser_toolbar_image_button_v_spacing"
+               android:insetLeft="@dimen/browser_toolbar_image_button_h_spacing"
+               android:insetRight="@dimen/browser_toolbar_image_button_h_spacing"
+               android:insetTop="@dimen/browser_toolbar_image_button_v_spacing">
+            <shape>
+                <solid android:color="@color/action_bar_item_bg_color_pressed"/>
+                <corners android:radius="@dimen/browser_toolbar_menu_radius"/>
+            </shape>
+        </inset>
+    </item>
+
+    <item android:state_focused="true"
+          android:state_pressed="false">
+        <inset android:insetBottom="@dimen/browser_toolbar_image_button_v_spacing"
+               android:insetLeft="@dimen/browser_toolbar_image_button_h_spacing"
+               android:insetRight="@dimen/browser_toolbar_image_button_h_spacing"
+               android:insetTop="@dimen/browser_toolbar_image_button_v_spacing">
+            <shape>
+                <solid android:color="@color/action_bar_item_bg_color_pressed"/>
+                <corners android:radius="@dimen/browser_toolbar_menu_radius"/>
+            </shape>
+        </inset>
+    </item>
+
+    <item android:drawable="@android:color/transparent"/>
 </selector>
--- a/mobile/android/app/src/photon/res/drawable/tab_strip_item_bg.xml
+++ b/mobile/android/app/src/photon/res/drawable/tab_strip_item_bg.xml
@@ -1,34 +1,34 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <selector xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:gecko="http://schemas.android.com/apk/res-auto">
 
-    <item android:drawable="@color/photon_tab_strip_item_checked_pressed_private"
+    <item android:drawable="@color/photon_tab_strip_item_private_checked_pressed"
           android:state_checked="true"
           android:state_pressed="true"
           gecko:state_private="true"/>
 
-    <item android:drawable="@color/photon_tab_strip_item_checked_private"
+    <item android:drawable="@color/photon_tab_strip_item_private_checked"
           android:state_checked="true"
           gecko:state_private="true"/>
 
-    <item android:drawable="@color/photon_tab_strip_item_checked_pressed_private"
+    <item android:drawable="@color/photon_tab_strip_item_private_pressed"
           android:state_pressed="true"
           gecko:state_private="true"/>
 
     <item android:drawable="@color/photon_tab_strip_item_checked_pressed"
           android:state_checked="true"
           android:state_pressed="true"/>
 
     <item android:drawable="@color/photon_tab_strip_item_checked"
           android:state_checked="true"/>
 
-    <item android:drawable="@color/photon_tab_strip_item_checked_pressed"
+    <item android:drawable="@color/photon_tab_strip_item_pressed"
           android:state_pressed="true"/>
 
-    <item android:drawable="@android:color/transparent"/>
+    <item android:drawable="@color/photon_tab_strip_item"/>
 
 </selector>
new file mode 100644
--- /dev/null
+++ b/mobile/android/app/src/photon/res/drawable/url_bar_forward_button.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- This Source Code Form is subject to the terms of the Mozilla Public
+   - License, v. 2.0. If a copy of the MPL was not distributed with this
+   - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+          xmlns:gecko="http://schemas.android.com/apk/res-auto">
+
+    <!-- private browsing mode -->
+    <item android:drawable="@color/action_bar_item_bg_color_private_pressed"
+          android:state_enabled="true"
+          android:state_focused="true"
+          gecko:state_private="true"/>
+
+    <item android:drawable="@color/action_bar_item_bg_color_private_pressed"
+          android:state_enabled="true"
+          android:state_pressed="true"
+          gecko:state_private="true"/>
+
+    <!-- normal mode -->
+    <item android:drawable="@color/action_bar_item_bg_color_pressed"
+          android:state_enabled="true"
+          android:state_focused="true"/>
+
+    <item android:drawable="@color/action_bar_item_bg_color_pressed"
+          android:state_enabled="true"
+          android:state_pressed="true"/>
+
+    <item android:drawable="@android:color/transparent"/>
+
+</selector>
--- a/mobile/android/app/src/photon/res/layout-large-v11/browser_toolbar.xml
+++ b/mobile/android/app/src/photon/res/layout-large-v11/browser_toolbar.xml
@@ -1,127 +1,111 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
-<merge xmlns:android="http://schemas.android.com/apk/res/android">
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+       xmlns:tools="http://schemas.android.com/tools"
+       xmlns:gecko="http://schemas.android.com/apk/res-auto"
+       tools:layout_height="@dimen/browser_toolbar_height"
+       tools:layout_width="match_parent"
+       tools:parentTag="RelativeLayout">
 
     <ImageView
         android:id="@+id/url_bar_entry"
         style="@style/UrlBar.Entry"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
-        android:layout_marginBottom="10dp"
-        android:layout_marginTop="10dp"
-        android:background="@drawable/url_bar_entry"
+        android:background="@android:color/transparent"
         android:clickable="false"
         android:duplicateParentState="true"
-        android:focusable="false" />
-
-    <!-- The attributes statically defined here are for the expanded
-         forward button. We translate/hide the forward button in code -
-         see BrowserToolbarTablet.animateForwardButton.
-
-         (for alpha) We want the button hidden to start so alpha=0.
-
-         (for layout_width) The visible area of the forward button is a
-	     nav_button_width and the non-visible area slides halfway
-	     under the back button. This non-visible area is used to
-	     ensure the forward button background fully covers the space
-	     to the right of the back button.
-
-         (for layout_marginLeft) We left align with back,
-         but only need to hide halfway underneath.
-
-         (for paddingLeft) We use left padding to center the
-         arrow in the visible area as opposed to the true width. -->
-    <org.mozilla.gecko.toolbar.ForwardButton
-        android:id="@+id/forward"
-        style="@style/UrlBar.ForwardButton"
-        android:layout_width="@dimen/tablet_nav_button_width_plus_half"
-        android:layout_height="match_parent"
-        android:layout_centerVertical="true"
-        android:layout_gravity="center_vertical"
-        android:layout_marginBottom="11.5dp"
-        android:layout_marginTop="11.5dp"
-        android:alpha="0"
-        android:background="@drawable/url_bar_nav_button"
-        android:contentDescription="@string/forward"
-        android:paddingBottom="0dp"
-        android:paddingTop="0dp"
-        android:src="@drawable/ic_menu_forward" />
+        android:focusable="false"/>
 
     <org.mozilla.gecko.toolbar.BackButton
         android:id="@+id/back"
         style="@style/UrlBar.BackButton"
         android:layout_width="@dimen/tablet_nav_button_width"
         android:layout_height="@dimen/tablet_nav_button_width"
         android:layout_centerVertical="true"
+        android:layout_margin="4dp"
         android:background="@drawable/url_bar_nav_button"
         android:contentDescription="@string/back"
-        android:src="@drawable/ic_menu_back" />
+        android:src="@drawable/ic_menu_back"
+        gecko:borderColor="@color/nav_button_border_color"
+        gecko:borderColorPrivate="@color/nav_button_border_color_private"/>
+
+    <org.mozilla.gecko.toolbar.ForwardButton
+        android:id="@+id/forward"
+        style="@style/UrlBar.ForwardButton"
+        android:layout_width="@dimen/tablet_nav_button_width_plus_half"
+        android:layout_height="@dimen/tablet_nav_button_width_plus_half"
+        android:layout_centerVertical="true"
+        android:layout_gravity="center_vertical"
+        android:background="@drawable/url_bar_forward_button"
+        android:contentDescription="@string/forward"
+        android:src="@drawable/ic_menu_forward"/>
 
     <org.mozilla.gecko.toolbar.ToolbarEditLayout
         android:id="@+id/edit_layout"
         style="@style/UrlBar.EditLayout"
         android:orientation="horizontal"
-        android:visibility="gone" />
+        android:visibility="gone"
+        tools:visibility="visible"/>
 
     <!-- Note: we set the padding on the site security icon to increase its tappable area. -->
     <org.mozilla.gecko.toolbar.ToolbarDisplayLayout
         android:id="@+id/display_layout"
-        style="@style/UrlBar.DisplayLayout" />
+        style="@style/UrlBar.DisplayLayout"/>
 
     <LinearLayout
         android:id="@+id/menu_items"
         style="@style/UrlBar.MenuItem"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:gravity="center_vertical"
-        android:orientation="horizontal" />
+        android:orientation="horizontal"/>
 
-    <org.mozilla.gecko.widget.themed.ThemedImageButton
+    <org.mozilla.gecko.toolbar.ToolbarRoundButton
         android:id="@+id/tabs"
         style="@style/UrlBar.Tabs"
         android:layout_alignWithParentIfMissing="true"
-        android:background="@drawable/browser_toolbar_action_bar_button" />
+        android:background="@drawable/url_bar_action_button"/>
 
     <!-- In a 56x60dp space, centering 24dp image will leave 16x18dp. -->
     <org.mozilla.gecko.toolbar.TabCounter
         android:id="@+id/tabs_counter"
         style="@style/UrlBar.TabCounter"
         android:layout_alignBottom="@id/tabs"
         android:layout_alignTop="@id/tabs"
-        android:layout_marginBottom="18dp"
-        android:layout_marginTop="18dp"
-        android:background="@drawable/tabs_count" />
+        android:gravity="center"/>
 
     <!-- Bug 1144707. Use clickable View instead of menu button margin to prevent
          edit mode actiivation when user clicks on the edge of the screen. -->
     <View
         android:id="@id/menu_margin"
         style="@style/UrlBar.MenuMargin"
         android:layout_width="6dp"
         android:layout_height="match_parent"
         android:clickable="true"
-        android:visibility="gone" />
+        android:visibility="gone"/>
 
-    <org.mozilla.gecko.widget.themed.ThemedImageButton
+    <org.mozilla.gecko.toolbar.ToolbarRoundButton
         android:id="@+id/menu"
         style="@style/UrlBar.Menu"
         android:layout_alignWithParentIfMissing="true"
-        android:background="@drawable/browser_toolbar_action_bar_button"
+        android:background="@drawable/url_bar_action_button"
         android:contentDescription="@string/menu"
-        android:src="@drawable/menu" />
+        android:scaleType="center"
+        android:src="@drawable/ic_overflow"/>
 
     <!-- We draw after the menu items so when they are hidden, the cancel button,
          which is thus drawn on top, may be pressed. -->
     <org.mozilla.gecko.widget.themed.ThemedImageView
         android:id="@+id/edit_cancel"
         style="@style/UrlBar.EditCancel"
-        android:layout_weight="0.0"
         android:contentDescription="@string/edit_mode_cancel"
-        android:src="@drawable/ic_cancel"
-        android:visibility="gone" />
+        android:src="@drawable/close_edit_mode_selector"
+        android:visibility="gone"
+        tools:visibility="visible"/>
 
 </merge>
--- a/mobile/android/app/src/photon/res/layout/browser_toolbar.xml
+++ b/mobile/android/app/src/photon/res/layout/browser_toolbar.xml
@@ -1,91 +1,83 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <merge xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    tools:layout_height="wrap_content"
-    tools:layout_width="match_parent"
-    tools:parentTag="RelativeLayout">
+       xmlns:tools="http://schemas.android.com/tools"
+       tools:layout_height="@dimen/browser_toolbar_height"
+       tools:layout_width="match_parent"
+       tools:parentTag="RelativeLayout">
 
     <!-- Note: any layout parameters setting the right edge of
          this View should be matched in the url_bar_translating_edge. -->
     <ImageView
         android:id="@+id/url_bar_entry"
         style="@style/UrlBar.Entry"
         android:layout_marginBottom="8dp"
         android:layout_marginTop="8dp"
         android:clickable="false"
         android:duplicateParentState="true"
         android:focusable="false"
         android:scaleType="fitXY"
-        android:src="@android:color/transparent" />
+        android:src="@android:color/transparent"/>
 
     <!-- A View that clips with url_bar_entry and translates
          around it to animate growing the url bar,
          which occurs in the display/editing mode transitions. -->
     <ImageView
         android:id="@+id/url_bar_translating_edge"
         style="@style/UrlBar.Edge"
         android:layout_alignBottom="@id/url_bar_entry"
         android:layout_alignTop="@id/url_bar_entry"
         android:clickable="false"
         android:duplicateParentState="true"
         android:focusable="false"
         android:scaleType="fitXY"
         android:src="@android:color/transparent"
-        android:visibility="invisible" />
+        android:visibility="invisible"/>
 
-    <org.mozilla.gecko.widget.themed.ThemedImageButton
+    <org.mozilla.gecko.toolbar.ToolbarRoundButton
         android:id="@+id/menu"
         style="@style/UrlBar.Menu"
-        android:background="@drawable/action_bar_button"
         android:contentDescription="@string/menu"
-        android:src="@drawable/ic_overflow"
-        tools:background="#880000FF" />
+        android:src="@drawable/ic_overflow"/>
 
-    <org.mozilla.gecko.widget.themed.ThemedImageButton
+    <org.mozilla.gecko.toolbar.ToolbarRoundButton
         android:id="@+id/tabs"
         style="@style/UrlBar.Tabs"
-        android:layout_alignWithParentIfMissing="true"
-        android:layout_marginRight="-2dp"
-        android:background="@drawable/action_bar_button"
-        tools:background="#88FF0000" />
+        android:layout_alignWithParentIfMissing="true"/>
 
     <org.mozilla.gecko.toolbar.TabCounter
         android:id="@+id/tabs_counter"
         style="@style/UrlBar.TabCounter"
         android:layout_height="24dip"
         android:layout_centerVertical="true"
         android:clipChildren="false"
         android:clipToPadding="false"
-        android:gravity="center_horizontal"
-        tools:background="#8800FF00" />
+        android:gravity="center_horizontal"/>
 
     <!-- Note that the edit components are invisible so that the views
          depending on their location can properly layout. -->
-    <org.mozilla.gecko.widget.themed.ThemedImageView
+    <org.mozilla.gecko.toolbar.ToolbarRoundButton
         android:id="@+id/edit_cancel"
         style="@style/UrlBar.EditCancel"
-        android:background="@drawable/action_bar_button"
+        android:background="@drawable/url_bar_action_button"
         android:contentDescription="@string/edit_mode_cancel"
         android:src="@drawable/ic_cancel"
-        android:visibility="invisible" />
+        android:visibility="invisible"/>
 
     <!-- The space to the left of the cancel button would be larger than the right because
          the url bar drawable contains some whitespace, so we compensate by removing
          some padding from the right (value determined through experimentation). -->
     <org.mozilla.gecko.toolbar.ToolbarEditLayout
         android:id="@+id/edit_layout"
         style="@style/UrlBar.EditLayout"
-        android:paddingEnd="0dp"
-        android:paddingRight="0dp"
-        android:visibility="invisible" />
+        android:visibility="invisible"/>
 
     <org.mozilla.gecko.toolbar.ToolbarDisplayLayout
         android:id="@+id/display_layout"
-        style="@style/UrlBar.DisplayLayout" />
+        style="@style/UrlBar.DisplayLayout"/>
 
 </merge>
--- a/mobile/android/app/src/photon/res/layout/tab_strip_inner.xml
+++ b/mobile/android/app/src/photon/res/layout/tab_strip_inner.xml
@@ -12,26 +12,25 @@
        tools:parentTag="LinearLayout">
 
     <org.mozilla.gecko.tabs.TabStripView
         android:id="@+id/tab_strip"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_marginLeft="16dp"
         android:layout_marginStart="16dp"
-        android:layout_marginTop="8dp"
         android:layout_weight="1"
         tools:listitem="@layout/tab_strip_item"/>
 
     <!-- The right margin creates a "dead area" on the right side of the button
          which we compensate for with a touch delegate. See TabStrip -->
     <org.mozilla.gecko.widget.themed.ThemedImageButton
         android:id="@+id/tablet_add_tab"
         style="@style/UrlBar.ImageButton"
-        android:layout_width="@dimen/tablet_tab_strip_height"
+        android:layout_width="@dimen/browser_toolbar_icon_width"
         android:layout_marginEnd="6dp"
         android:layout_marginRight="6dp"
         android:background="@drawable/tab_strip_button"
         android:contentDescription="@string/new_tab"
         android:src="@drawable/tab_new"
         gecko:drawableTintList="@color/tab_new_tab_strip_colors"/>
 
 </merge>
--- a/mobile/android/app/src/photon/res/layout/tab_strip_item.xml
+++ b/mobile/android/app/src/photon/res/layout/tab_strip_item.xml
@@ -4,9 +4,10 @@
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <!-- The paddings are asymmetric here to compensate the padding around the
      the close button within the TabStripItemView -->
 <org.mozilla.gecko.tabs.TabStripItemView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="@dimen/tablet_tab_strip_item_width"
     android:layout_height="@dimen/tablet_tab_strip_item_height"
+    android:layout_marginTop="8dp"
     android:background="@drawable/tab_strip_item_bg"/>
--- a/mobile/android/app/src/photon/res/layout/tab_strip_item_view.xml
+++ b/mobile/android/app/src/photon/res/layout/tab_strip_item_view.xml
@@ -41,11 +41,12 @@
     <org.mozilla.gecko.widget.themed.ThemedImageButton
         android:id="@+id/close"
         android:layout_width="35dp"
         android:layout_height="match_parent"
         android:background="@android:color/transparent"
         android:contentDescription="@string/close_tab"
         android:duplicateParentState="true"
         android:scaleType="center"
-        android:src="@drawable/tab_close"/>
+        android:src="@drawable/tab_close"
+        android:tint="@color/tab_strip_item_title"/>
 
 </merge>
--- a/mobile/android/app/src/photon/res/layout/toolbar_display_layout.xml
+++ b/mobile/android/app/src/photon/res/layout/toolbar_display_layout.xml
@@ -1,20 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <merge xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:gecko="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    tools:layout_height="@dimen/browser_toolbar_height"
-    tools:layout_width="match_parent"
-    tools:parentTag="LinearLayout">
+       xmlns:gecko="http://schemas.android.com/apk/res-auto"
+       xmlns:tools="http://schemas.android.com/tools"
+       tools:layout_height="@dimen/browser_toolbar_height"
+       tools:layout_width="match_parent"
+       tools:parentTag="LinearLayout">
 
     <!-- The site security icon is misaligned with the page title so
          we add a bottom margin to align their bottoms.
          Site security icon must have exact position and size as search icon in
          edit layout -->
 
     <org.mozilla.gecko.widget.themed.ThemedImageButton
         android:id="@+id/site_security"
@@ -22,36 +22,38 @@
         android:layout_gravity="center_vertical"
         android:layout_marginBottom="@dimen/browser_toolbar_site_security_margin_bottom"
         android:layout_marginEnd="@dimen/browser_toolbar_site_security_margin_end"
         android:layout_marginRight="@dimen/browser_toolbar_site_security_margin_end"
         android:background="@android:color/transparent"
         android:contentDescription="@string/site_security"
         android:src="@drawable/security_mode_icon"
         tools:background="#88FF0000"
-        tools:src="@drawable/ic_lock" />
+        tools:src="@drawable/ic_lock"/>
 
     <org.mozilla.gecko.widget.FadedMultiColorTextView
         android:id="@+id/url_bar_title"
         style="@style/UrlBar.Title"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_weight="1.0"
         gecko:autoUpdateTheme="false"
         gecko:fadeBackgroundColor="@android:color/transparent"
-        gecko:fadeWidth="40dip" />
+        gecko:fadeWidth="40dip"/>
 
     <org.mozilla.gecko.toolbar.PageActionLayout
         android:id="@+id/page_action_layout"
         android:layout_width="wrap_content"
         android:layout_height="match_parent"
         android:orientation="horizontal"
-        android:visibility="gone" />
+        android:visibility="gone"
+        tools:visibility="visible"/>
 
-    <org.mozilla.gecko.widget.themed.ThemedImageButton
+    <org.mozilla.gecko.toolbar.ToolbarRoundButton
         android:id="@+id/stop"
         style="@style/UrlBar.ImageButton"
-        android:background="@drawable/action_bar_button"
+        android:background="@drawable/url_bar_action_button"
         android:contentDescription="@string/stop"
         android:src="@drawable/ic_cancel"
-        android:visibility="gone" />
+        android:visibility="gone"
+        tools:visibility="visible"/>
 
 </merge>
--- a/mobile/android/app/src/photon/res/layout/toolbar_edit_layout.xml
+++ b/mobile/android/app/src/photon/res/layout/toolbar_edit_layout.xml
@@ -1,64 +1,52 @@
 <?xml version="1.0" encoding="utf-8"?>
 
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <merge xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:gecko="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    tools:background="@android:color/holo_green_light"
-    tools:layout_height="wrap_content"
-    tools:layout_width="match_parent"
-    tools:orientation="horizontal"
-    tools:parentTag="LinearLayout">
+       xmlns:gecko="http://schemas.android.com/apk/res-auto"
+       xmlns:tools="http://schemas.android.com/tools"
+       tools:background="@android:color/holo_green_light"
+       tools:layout_height="@dimen/browser_toolbar_height"
+       tools:layout_width="match_parent"
+       tools:orientation="horizontal"
+       tools:parentTag="LinearLayout">
 
     <!-- Search icon must have exact position and size as site security in
          display layout -->
     <org.mozilla.gecko.widget.themed.ThemedImageButton
         android:id="@+id/search_icon"
-        style="@style/UrlBar.ImageButtonBase"
-        android:layout_width="@dimen/browser_toolbar_height"
-        android:layout_height="@dimen/browser_toolbar_site_security_height"
-        android:layout_marginBottom="@dimen/browser_toolbar_site_security_margin_bottom"
-        android:layout_marginEnd="@dimen/browser_toolbar_site_security_margin_end"
-        android:layout_marginRight="@dimen/browser_toolbar_site_security_margin_end"
-        android:background="@drawable/action_bar_button"
-        android:paddingBottom="@dimen/browser_toolbar_site_security_padding_vertical"
-        android:paddingEnd="@dimen/browser_toolbar_site_security_padding_horizontal"
-        android:paddingLeft="@dimen/browser_toolbar_site_security_padding_horizontal"
-        android:paddingRight="@dimen/browser_toolbar_site_security_padding_horizontal"
-        android:paddingStart="@dimen/browser_toolbar_site_security_padding_horizontal"
-        android:paddingTop="@dimen/browser_toolbar_site_security_padding_vertical"
-        android:scaleType="fitCenter"
+        style="@style/UrlBar.SiteIdentity"
+        android:scaleType="center"
         android:src="@drawable/ic_search_icon"
         android:visibility="gone"
-        tools:visibility="visible" />
+        tools:visibility="visible"/>
 
     <org.mozilla.gecko.toolbar.ToolbarEditText
         android:id="@+id/url_edit_text"
         style="@style/UrlBar.Title"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_weight="1.0"
         android:contentDescription="@string/url_bar_default_text"
         android:imeOptions="actionGo|flagNoExtractUi|flagNoFullscreen"
         android:inputType="textUri"
         android:paddingEnd="8dp"
         android:paddingRight="8dp"
         android:selectAllOnFocus="true"
-        gecko:autoUpdateTheme="false" />
+        gecko:autoUpdateTheme="false"/>
 
-    <org.mozilla.gecko.widget.themed.ThemedImageButton
+    <org.mozilla.gecko.toolbar.ToolbarRoundButton
         android:id="@+id/qrcode"
-        style="@style/UrlBar.ImageButton"
-        android:background="@drawable/action_bar_button"
-        android:src="@drawable/ic_qrcode" />
+        style="@style/UrlBar.QRCode"
+        android:background="@drawable/url_bar_action_button"
+        android:src="@drawable/ic_qrcode"/>
 
-    <org.mozilla.gecko.widget.themed.ThemedImageButton
+    <org.mozilla.gecko.toolbar.ToolbarRoundButton
         android:id="@+id/mic"
         style="@style/UrlBar.ImageButton"
-        android:background="@drawable/action_bar_button"
-        android:src="@drawable/ic_mic" />
+        android:background="@drawable/url_bar_action_button"
+        android:src="@drawable/ic_mic"/>
 
 </merge>
--- a/mobile/android/app/src/photon/res/values-large-v17/styles.xml
+++ b/mobile/android/app/src/photon/res/values-large-v17/styles.xml
@@ -11,74 +11,74 @@
 
     <style name="UrlBar.V17.Menu" parent="UrlBar.Base.Menu">
         <item name="android:layout_toStartOf">@id/menu_margin</item>
     </style>
 
     <style name="UrlBar.MenuItem" parent="UrlBar.V17.MenuItem" />
 
     <style name="UrlBar.V17.MenuItem" parent="UrlBar.Base.MenuItem">
-        <item name="android:layout_marginStart">6dp</item>
         <item name="android:layout_toStartOf">@id/tabs</item>
     </style>
 
     <style name="UrlBar.Tabs" parent="UrlBar.V17.Tabs" />
 
     <style name="UrlBar.V17.Tabs" parent="UrlBar.Base.Tabs">
         <item name="android:layout_toStartOf">@id/menu</item>
     </style>
 
     <style name="UrlBar.TabCounter" parent="UrlBar.V17.TabCounter" />
 
     <style name="UrlBar.V17.TabCounter" parent="UrlBar.Base.TabCounter">
         <item name="android:layout_alignStart">@id/tabs</item>
         <item name="android:layout_alignEnd">@id/tabs</item>
-        <item name="android:layout_marginStart">16dp</item>
-        <item name="android:layout_marginEnd">16dp</item>
     </style>
 
     <style name="UrlBar.Entry" parent="UrlBar.V17.Entry" />
 
     <style name="UrlBar.V17.Entry" parent="UrlBar.Base.Entry">
         <item name="android:layout_alignStart">@id/back</item>
         <item name="android:layout_toStartOf">@id/menu_items</item>
         <item name="android:layout_marginStart">@dimen/tablet_nav_button_width_half</item>
     </style>
 
     <style name="UrlBar.ForwardButton" parent="UrlBar.V17.ForwardButton" />
 
     <style name="UrlBar.V17.ForwardButton" parent="UrlBar.Base.ForwardButton">
-        <item name="android:layout_alignStart">@id/back</item>
-        <item name="android:layout_marginStart">@dimen/tablet_nav_button_width_half</item>
+        <item name="android:layout_toEndOf">@id/back</item>
         <item name="android:paddingStart">@dimen/tablet_fwd_button_padding_start</item>
         <item name="android:paddingEnd">@dimen/tablet_fwd_button_padding_end</item>
     </style>
 
     <style name="UrlBar.BackButton" parent="UrlBar.V17.BackButton" />
 
     <style name="UrlBar.V17.BackButton" parent="UrlBar.Base.BackButton">
         <item name="android:layout_marginStart">12dp</item>
         <item name="android:layout_alignParentStart">true</item>
     </style>
 
     <style name="UrlBar.EditLayout" parent="UrlBar.V17.EditLayout" />
 
     <style name="UrlBar.V17.EditLayout" parent="UrlBar.Base.EditLayout">
-        <item name="android:paddingStart">0dp</item>
-        <item name="android:paddingEnd">12dp</item>
         <item name="android:layout_toStartOf">@id/menu_items</item>
-        <item name="android:layout_toEndOf">@id/back</item>
+        <item name="android:layout_toEndOf">@id/forward</item>
     </style>
 
     <style name="UrlBar.DisplayLayout" parent="UrlBar.V17.DisplayLayout" />
 
     <style name="UrlBar.V17.DisplayLayout" parent="UrlBar.Base.DisplayLayout">
         <item name="android:layout_toStartOf">@id/menu_items</item>
-        <item name="android:layout_toEndOf">@id/back</item>
+        <item name="android:layout_toEndOf">@id/forward</item>
     </style>
 
     <style name="UrlBar.EditCancel" parent="UrlBar.V17.EditCancel" />
 
     <style name="UrlBar.V17.EditCancel" parent="UrlBar.Base.EditCancel">
         <item name="android:layout_alignParentEnd">true</item>
     </style>
 
+    <style name="UrlBar.SiteIdentity" parent="UrlBar.V17.SiteIdentity" />
+
+    <style name="UrlBar.V17.SiteIdentity" parent="UrlBar.Base.SiteIdentity">
+        <item name="android:layout_marginStart">8dp</item>
+    </style>
+
 </resources>
--- a/mobile/android/app/src/photon/res/values-large/dimens.xml
+++ b/mobile/android/app/src/photon/res/values-large/dimens.xml
@@ -10,18 +10,23 @@
 
     <!-- This value is the height of the Tabs Panel header view
          (browser_toolbar_height) minus the height of the indicator
          (6dp). This value should change when the height of the view changes. -->
     <dimen name="tabs_panel_indicator_selected_padding_top">50dp</dimen>
 
     <dimen name="browser_toolbar_height_flipper">@dimen/browser_toolbar_height</dimen>
     <dimen name="browser_toolbar_button_padding">16dp</dimen>
+    <dimen name="browser_toolbar_icon_width">@dimen/browser_toolbar_height</dimen>
+    <dimen name="browser_toolbar_menu_radius">4dp</dimen>
     <dimen name="browser_toolbar_favicon_size">16dp</dimen>
 
+    <dimen name="browser_toolbar_image_button_width">56dp</dimen>
+    <dimen name="browser_toolbar_image_button_h_spacing">4dp</dimen>
+
     <dimen name="browser_toolbar_site_security_height">60dp</dimen>
     <dimen name="browser_toolbar_site_security_width">34dp</dimen>
     <dimen name="browser_toolbar_site_security_margin_end">6dp</dimen>
     <!-- We primarily use padding (instead of margins) to increase the hit area. -->
     <dimen name="browser_toolbar_site_security_padding_vertical">21dp</dimen>
     <dimen name="browser_toolbar_site_security_padding_horizontal">8dp</dimen>
 
     <dimen name="firstrun_background_height">300dp</dimen>
@@ -29,23 +34,17 @@
     <dimen name="tabs_panel_indicator_width">96dp</dimen>
     <dimen name="tabs_panel_button_width">60dp</dimen>
     <dimen name="panel_grid_view_column_width">200dp</dimen>
 
     <dimen name="overlay_prompt_container_width">360dp</dimen>
 
     <item name="tab_strip_content_start" type="dimen">72dp</item>
 
-
     <dimen name="tab_panel_grid_hpadding_autofit">30dp</dimen>
     <dimen name="tab_panel_grid_vpadding_autofit">30dp</dimen>
     <dimen name="tab_panel_grid_item_hpadding_autofit">20dp</dimen>
     <dimen name="tab_panel_grid_item_vpadding_autofit">8dp</dimen>
 
-
-
-
-
-
-
-
+    <!-- PageActionButtons dimensions -->
+    <dimen name="page_action_button_width">56dp</dimen>
 
 </resources>
--- a/mobile/android/app/src/photon/res/values-large/styles.xml
+++ b/mobile/android/app/src/photon/res/values-large/styles.xml
@@ -2,28 +2,27 @@
 
 <!-- This Source Code Form is subject to the terms of the Mozilla Public
    - License, v. 2.0. If a copy of the MPL was not distributed with this
    - file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
 
 <resources>
 
     <style name="UrlBar.ImageButton" parent="UrlBar.ImageButtonBase">
+        <item name="android:layout_height">match_parent</item>
         <item name="android:layout_width">@dimen/tablet_browser_toolbar_menu_item_width</item>
     </style>
 
     <!-- If this style wasn't actually shared outside the
          url bar, this name could be improved (bug 1197424). -->
     <style name="UrlBar.ImageButton.BrowserToolbarColors">
         <item name="drawableTintList">@color/action_bar_menu_item_colors</item>
     </style>
 
     <style name="UrlBar.Button.Container">
-        <item name="android:layout_marginTop">6dp</item>
-        <item name="android:layout_marginBottom">6dp</item>
         <!-- Start with forward hidden -->
         <item name="android:orientation">horizontal</item>
     </style>
 
     <style name="TabsItem">
         <item name="android:nextFocusDown">@+id/close</item>
     </style>
 
@@ -36,17 +35,18 @@
 
         <!-- Same as pre-19 Toast style, but with no left and right margins.
              They're removed since large tablets are never going to be only 400dp wide. -->
     </style>
 
     <style name="Widget.MenuItemActionBar">
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">wrap_content</item>
-        <item name="android:background">@drawable/browser_toolbar_action_bar_button</item>
+        <!--<item name="android:background">@drawable/browser_toolbar_action_bar_button</item>-->
+        <item name="android:background">@drawable/action_bar_button</item>
         <item name="drawableTintList">@color/action_bar_menu_item_colors</item>
         <item name="android:scaleType">center</item>
 
         <!-- layout_width/height doesn't work here, likely because it's only
              added programmatically, so we use padding for the width instead.
              layout_height is set to MATCH_PARENT programmatically in
              org.mozilla.gecko.toolbar.BrowserToolbarTabletBase.addActionItem(View) -->
 
@@ -105,17 +105,16 @@
         <item name="android:layout_toLeftOf">@id/menu_margin</item>
     </style>
 
     <style name="UrlBar.MenuItem" parent="UrlBar.V15.MenuItem" />
 
     <style name="UrlBar.Base.MenuItem" />
 
     <style name="UrlBar.V15.MenuItem" parent="UrlBar.Base.MenuItem">
-        <item name="android:layout_marginLeft">6dp</item>
         <item name="android:layout_toLeftOf">@id/tabs</item>
     </style>
 
     <style name="UrlBar.Tabs" parent="UrlBar.V15.Tabs" />
 
     <style name="UrlBar.Base.Tabs" parent="UrlBar.ImageButton" />
 
     <style name="UrlBar.V15.Tabs" parent="UrlBar.Base.Tabs">
@@ -124,18 +123,16 @@
 
     <style name="UrlBar.TabCounter" parent="UrlBar.V15.TabCounter" />
 
     <style name="UrlBar.Base.TabCounter" parent="UrlBar.ImageButton" />
 
     <style name="UrlBar.V15.TabCounter" parent="UrlBar.Base.TabCounter">
         <item name="android:layout_alignLeft">@id/tabs</item>
         <item name="android:layout_alignRight">@id/tabs</item>
-        <item name="android:layout_marginLeft">16dp</item>
-        <item name="android:layout_marginRight">16dp</item>
         <item name="android:layout_toLeftOf">@id/menu</item>
     </style>
 
     <style name="UrlBar.Entry" parent="UrlBar.V15.Entry" />
 
     <style name="UrlBar.Base.Entry" />
 
     <style name="UrlBar.V15.Entry" parent="UrlBar.Base.Entry">
@@ -144,18 +141,17 @@
         <item name="android:layout_marginLeft">@dimen/tablet_nav_button_width_half</item>
     </style>
 
     <style name="UrlBar.ForwardButton" parent="UrlBar.V15.ForwardButton" />
 
     <style name="UrlBar.Base.ForwardButton" parent="UrlBar.ImageButton.BrowserToolbarColors" />
 
     <style name="UrlBar.V15.ForwardButton" parent="UrlBar.Base.ForwardButton">
-        <item name="android:layout_alignLeft">@id/back</item>
-        <item name="android:layout_marginLeft">@dimen/tablet_nav_button_width_half</item>
+        <item name="android:layout_toRightOf">@id/back</item>
         <item name="android:paddingLeft">@dimen/tablet_fwd_button_padding_start</item>
         <item name="android:paddingRight">@dimen/tablet_fwd_button_padding_end</item>
     </style>
 
     <style name="UrlBar.BackButton" parent="UrlBar.V15.BackButton" />
 
     <style name="UrlBar.Base.BackButton" parent="UrlBar.ImageButton.BrowserToolbarColors" />
 
@@ -164,31 +160,36 @@
         <item name="android:layout_alignParentLeft">true</item>
     </style>
 
     <style name="UrlBar.EditLayout" parent="UrlBar.V15.EditLayout" />
 
     <style name="UrlBar.Base.EditLayout" parent="UrlBar.Button" />
 
     <style name="UrlBar.V15.EditLayout" parent="UrlBar.Base.EditLayout">
-        <item name="android:paddingRight">12dp</item>
         <item name="android:layout_toLeftOf">@id/menu_items</item>
-        <item name="android:layout_toRightOf">@id/back</item>
+        <item name="android:layout_toRightOf">@id/forward</item>
     </style>
 
     <style name="UrlBar.DisplayLayout" parent="UrlBar.V15.DisplayLayout" />
 
     <style name="UrlBar.Base.DisplayLayout" parent="UrlBar.Button.Container" />
 
     <style name="UrlBar.V15.DisplayLayout" parent="UrlBar.Base.DisplayLayout">
         <item name="android:layout_toLeftOf">@id/menu_items</item>
-        <item name="android:layout_toRightOf">@id/back</item>
+        <item name="android:layout_toRightOf">@id/forward</item>
     </style>
 
     <style name="UrlBar.EditCancel" parent="UrlBar.V15.EditCancel" />
 
     <style name="UrlBar.Base.EditCancel" parent="UrlBar.ImageButton" />
 
     <style name="UrlBar.V15.EditCancel" parent="UrlBar.Base.EditCancel">
         <item name="android:layout_alignParentRight">true</item>
     </style>
 
+    <style name="UrlBar.SiteIdentity" parent="UrlBar.V15.SiteIdentity" />
+
+    <style name="UrlBar.V15.SiteIdentity" parent="UrlBar.Base.SiteIdentity">
+        <item name="android:layout_marginLeft">8dp</item>
+    </style>
+
 </resources>
--- a/mobile/android/app/src/photon/res/values-v11/styles.xml
+++ b/mobile/android/app/src/photon/res/values-v11/styles.xml
@@ -81,17 +81,18 @@
         <item name="android:paddingRight">15dp</item>
         <!-- gravity and minWidth are added here to more resemble our values/styles.xml
              counterpart. This is solely to correct bug 1233709 -->
         <item name="android:gravity">center_vertical</item>
         <item name="android:minWidth">0dp</item>
     </style>
 
     <style name="GeckoActionBar.Button" parent="android:style/Widget.Holo.Light.ActionButton">
-        <item name="android:padding">8dip</item>
+        <item name="android:layout_width">@dimen/browser_toolbar_height</item>
+        <item name="android:layout_height">match_parent</item>
         <!-- The default implementation doesn't do any image scaling. Our custom menus mean we can't just use the same image
              in both menus and the actionbar without doing some scaling though. Users may also want to set
              layout_height="match_parent" to make sure buttons are scaled to full action bar height - setting it here
              doesn't work. -->
         <item name="android:scaleType">centerInside</item>
     </style>
 
     <style name="GeckoActionBar.Button.MenuButton" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
--- a/mobile/android/app/src/photon/res/values-v17/styles.xml
+++ b/mobile/android/app/src/photon/res/values-v17/styles.xml
@@ -1,17 +1,15 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
 
     <style name="UrlBar.SiteIdentity" parent="UrlBar.V17.SiteIdentity" />
 
     <style name="UrlBar.V17.SiteIdentity" parent="UrlBar.Base.SiteIdentity">
         <item name="android:layout_marginStart">5dp</item>
-        <item name="android:paddingStart">5.5dp</item>
-        <item name="android:paddingEnd">5.5dp</item>
     </style>
 
     <style name="UrlBar.Entry" parent="UrlBar.V17.Entry" />
 
     <style name="UrlBar.V17.Entry" parent="UrlBar.Base.Entry">
         <item name="android:layout_marginStart">5dp</item>
         <item name="android:layout_toStartOf">@+id/tabs</item>
     </style>
@@ -28,16 +26,17 @@
     <style name="UrlBar.V17.Menu" parent="UrlBar.Base.Menu">
         <item name="android:layout_alignParentEnd">true</item>
     </style>
 
     <style name="UrlBar.Tabs" parent="UrlBar.V17.Tabs" />
 
     <style name="UrlBar.V17.Tabs" parent="UrlBar.Base.Tabs">
         <item name="android:layout_toStartOf">@id/menu</item>
+        <item name="android:layout_marginEnd">-4dp</item>
     </style>
 
     <style name="UrlBar.TabCounter" parent="UrlBar.V17.TabCounter" />
 
     <style name="UrlBar.V17.TabCounter" parent="UrlBar.Base.TabCounter">
 
         <item name="android:layout_alignEnd">@id/tabs</item>
     </style>
@@ -49,19 +48,26 @@
     </style>
 
     <style name="UrlBar.EditLayout" parent="UrlBar.V17.EditLayout" />
 
     <style name="UrlBar.V17.EditLayout" parent="UrlBar.Base.EditLayout">
         <item name="android:layout_alignStart">@id/url_bar_entry</item>
         <item name="android:layout_toStartOf">@id/edit_cancel</item>
         <item name="android:paddingStart">8dp</item>
-        <item name="android:paddingEnd">8dp</item>
+        <item name="android:paddingEnd">0dp</item>
+        <item name="android:layout_marginEnd">-2dp</item>
     </style>
 
     <style name="UrlBar.DisplayLayout" parent="UrlBar.V17.DisplayLayout" />
 
     <style name="UrlBar.V17.DisplayLayout" parent="UrlBar.Base.DisplayLayout">
         <item name="android:layout_alignStart">@id/url_bar_entry</item>
         <item name="android:layout_alignEnd">@id/url_bar_entry</item>
+        <item name="android:layout_marginEnd">-2dp</item>
+    </style>
+
+    <style name="UrlBar.QRCode" parent="UrlBar.V15.QRCode"/>
+    <style name="UrlBar.V15.QRCode" parent="UrlBar.ImageButton">
+        <item name="android:layout_marginRight">-2dp</item>
     </style>
 
 </resources>
--- a/mobile/android/app/src/photon/res/values/colors.xml
+++ b/mobile/android/app/src/photon/res/values/colors.xml
@@ -26,34 +26,38 @@
     <color name="photon_search_suggestion_box_private_pressed">#332A2A2A</color>
 
     <color name="photon_browser_toolbar_bg">#F9F9FA</color>
     <color name="photon_browser_toolbar_bg_private">#38383D</color>
 
     <color name="photon_content_bg">#FFFFFF</color>
 
     <!-- opacity: 10% -->
-    <color name="photon_content_bg_pressed">#19272727</color>
+    <color name="photon_content_bg_pressed">#1A272727</color>
 
     <color name="photon_content_bg_private">#414146</color>
 
     <!-- opacity: 10% -->
-    <color name="photon_content_bg_private_pressed">#19272727</color>
+    <color name="photon_content_bg_private_pressed">#1A272727</color>
 
     <color name="photon_tabs_tray_bg">#272727</color>
     <color name="photon_highlight">#00A2FE</color>
     <color name="photon_highlight_private">#AC39FF</color>
     <color name="photon_loading_indicator_light">#00DCFC</color>
     <color name="photon_loading_indicator_light_private">#FF1AD9</color>
     <color name="photon_loading_indicator_dark">#00A2FE</color>
     <color name="photon_loading_indicator_dark_private">#9400FF</color>
     <color name="photon_menu_bg">#F9F9FA</color>
     <color name="photon_menu_bg_private">#38383D</color>
     <color name="photon_icon">#272727</color>
+    <color name="photon_icon_disabled">#33272727</color>
+    <color name="photon_icon_pressed">@color/photon_icon</color>
     <color name="photon_icon_private">#FFFFFF</color>
+    <color name="photon_icon_private_disabled">#33FFFFFF</color>
+    <color name="photon_icon_private_pressed">@color/photon_icon_private</color>
     <color name="photon_icon_lock">#16DA00</color>
 
     <color name="photon_notification_bg">#0096DD</color>
 
     <!-- opacity: 20% -->
     <color name="photon_notification_bg_pressed">#33000000</color>
 
     <color name="photon_toolbar_text_color">#3B3B3B</color>
@@ -68,35 +72,63 @@
 
     <color name="photon_two_line_page_row_bg">#FFFFFF</color>
     <color name="photon_two_line_page_row_bg_private">#414146</color>
 
     <color name="photon_search_item_text">@color/photon_text_main</color>
     <color name="photon_search_item_text_private">@color/photon_text_main_private</color>
 
     <color name="photon_home_list_divider">@color/photon_two_line_page_row_bg</color>
-    <color name="photon_home_list_divider_private">@color/photon_two_line_page_row_bg_private
-    </color>
+    <color name="photon_home_list_divider_private">@color/photon_two_line_page_row_bg_private</color>
 
     <color name="progress_start">#00DCFC</color>
     <color name="progress_end">#00A2FE</color>
 
     <color name="photon_url_bar_blocked">#D70022</color>
     <color name="photon_url_bar_blocked_private">#D70022</color>
     <color name="photon_url_bar_certificate_owner">#05A700</color>
     <color name="photon_url_bar_certificate_owner_private">#16DA00</color>
     <color name="photon_url_bar_domain">@color/photon_text_main</color>
     <color name="photon_url_bar_domain_private">@color/photon_text_main_private</color>
 
-    <!-- Tab strip colors on tablet -->
+    <!-- Tab strip color on tablet -->
     <color name="photon_tab_strip_bg">#272727</color>
-    <color name="photon_tab_strip_item_checked_pressed">#19272727</color>
-    <color name="photon_tab_strip_item_checked_pressed_private">#19FFFFFF</color>
+
+    <!-- Tab strip item color on tablet -->
+    <color name="photon_tab_strip_item">#272727</color>
     <color name="photon_tab_strip_item_checked">#F9F9FA</color>
-    <color name="photon_tab_strip_item_checked_private">#38383D</color>
+    <color name="photon_tab_strip_item_checked_pressed">#E4E4E5</color> <!-- #F9F9FA + #272727@10% Alpha -->
+    <color name="photon_tab_strip_item_pressed">#3D3C3D</color> <!-- #272727 + #FFFFFF@10% Alpha -->
+    <color name="photon_tab_strip_item_private_checked">#38383D</color>
+    <color name="photon_tab_strip_item_private_checked_pressed">#4C4B51</color> <!-- #38383D + #FFFFFF@10% Alpha -->
+    <color name="photon_tab_strip_item_private_pressed">#3D3C3D</color> <!-- #272727 + #FFFFFF@10% Alpha -->
+
+    <!-- Status bar background color -->
+    <color name="status_bar_bg_color">@color/photon_toolbar_bg</color>
+    <color name="status_bar_bg_color_private">@color/photon_toolbar_bg_private</color>
+    <color name="status_bar_bg_color_tablet">@color/photon_tabs_tray_bg</color>
+
+    <!-- Toolbar menu item tint color -->
+    <color name="menu_item_tint">@color/photon_icon</color>
+    <color name="menu_item_tint_private">@color/photon_icon_private</color>
+
+    <!-- Navigation button background color -->
+    <color name="nav_button_bg_color">#F9F9FA</color>
+    <color name="nav_button_bg_color_disabled">#0D272727</color>
+    <color name="nav_button_bg_color_focused">#1A272727</color>
+    <color name="nav_button_bg_color_pressed">#33272727</color>
+    <color name="nav_button_bg_color_private">#2A2A2A</color>
+    <color name="nav_button_bg_color_private_disabled">#0DFFFFFF</color>
+    <color name="nav_button_bg_color_private_focused">#1AFFFFFF</color>
+    <color name="nav_button_bg_color_private_pressed">#33FFFFFF</color>
+    <color name="nav_button_border_color">#E4E4E4</color>
+    <color name="nav_button_border_color_private">#272727</color>
+
+    <color name="action_bar_item_bg_color_pressed">#33272727</color>
+    <color name="action_bar_item_bg_color_private_pressed">#33FFFFFF</color>
 
     <!-- Fennec color palette (bug 1127517) -->
     <color name="fennec_ui_orange">#FF9500</color>
     <color name="affirmative_green">#6FBE4A</color>
     <color name="rejection_red">#D23228</color>
     <color name="action_orange">#E66000</color>
     <color name="action_orange_pressed">#DC5600</color>
     <color name="link_blue">#0096DD</color>
@@ -112,17 +144,17 @@
 
     <color name="tabs_tray_icon_grey">#AFB1B3</color>
     <color name="disabled_grey">#BFBFBF</color>
     <color name="toolbar_grey_pressed">#D7D7DC</color>
     <color name="toolbar_menu_dark_grey">#E1E1E6</color>
     <color name="toolbar_grey">#EBEBF0</color>
     <color name="about_page_header_grey">#F5F5F5</color>
 
-    <color name="url_bar_shadow_private">#7878A5</color>
+    <color name="url_bar_shadow_private">#272727</color>
 
     <!-- Restricted profiles palette -->
 
     <color name="restricted_profile_background_gold">#ffffcb51</color>
     <color name="restricted_profile_background_green">#1aaa86</color>
 
     <!-- Non-palette colors -->
 
@@ -204,19 +236,17 @@
 
     <color name="url_bar_urltext">@color/photon_text_placeholder</color>
     <color name="url_bar_urltext_private">@color/photon_text_placeholder_private</color>
     <color name="url_bar_domaintext">@color/photon_url_bar_domain</color>
     <color name="url_bar_domaintext_private">@color/photon_url_bar_domain_private</color>
     <color name="url_bar_blockedtext">@color/photon_url_bar_blocked</color>
     <color name="url_bar_blockedtext_private">@color/photon_url_bar_blocked_private</color>
     <color name="url_bar_certificate_owner">@color/photon_url_bar_certificate_owner</color>
-    <color name="url_bar_certificate_owner_private">
-        @color/photon_url_bar_certificate_owner_private
-    </color>
+    <color name="url_bar_certificate_owner_private">@color/photon_url_bar_certificate_owner_private</color>
     <color name="url_bar_shadow">#12000000</color>
 
     <color name="panel_image_item_background">#D1D9E1</color>
     <color name="panel_icon_item_title_background">#32000000</color>
     <color name="panel_tab_text_normal">#FFBFBFBF</color>
 
     <!-- Remote tabs setup -->
     <color name="remote_tabs_setup_button_background_hit">#D95300</color>
@@ -243,12 +273,12 @@
     <color name="private_active_text">#FFFFFF</color>
 
     <color name="action_bar_bg_color">@color/toolbar_grey</color>
 
     <color name="activity_stream_subtitle">#FF919191</color>
     <color name="activity_stream_timestamp">#FFD3D3D3</color>
     <color name="activity_stream_icon">#FF919191</color>
 
-    <color name="tablet_tab_strip_divider_color">#555555</color>
+    <color name="tablet_tab_strip_divider_color">#414146</color>
 
     <color name="bookmark_folder_bg_color">#FCFCFC</color>
 </resources>
--- a/mobile/android/app/src/photon/res/values/dimens.xml
+++ b/mobile/android/app/src/photon/res/values/dimens.xml
@@ -12,50 +12,52 @@
     <dimen name="autocomplete_row_height">32dp</dimen>
 
     <dimen name="browser_toolbar_height">56dp</dimen>
     <dimen name="browser_toolbar_image_button_width">48dp</dimen>
     <!-- ToolbarImageButton's pressed-highlight region is different from clickable region.
          Our design is to make pressed-highlight region to be square. this vertical spacing value
          helps drawable xml to set padding: (56 - 48) / 2 -->
     <dimen name="browser_toolbar_image_button_v_spacing">4dp</dimen>
+    <dimen name="browser_toolbar_image_button_h_spacing">0dp</dimen>
 
     <!-- This value is the height of the Tabs Panel header view
          (browser_toolbar_height) minus the height of the indicator
          (6dp). This value should change when the height of the view changes. -->
     <dimen name="tabs_panel_indicator_selected_padding_top">50dp</dimen>
 
     <!-- We use two different values for browser_toolbar_height on tablet
          which is inconsistent. Temporary value until bug 1150730 is fixed. -->
     <dimen name="browser_toolbar_height_flipper">@dimen/browser_toolbar_height</dimen>
     <dimen name="browser_toolbar_button_padding">12dp</dimen>
     <dimen name="browser_toolbar_icon_width">48dp</dimen>
     <dimen name="browser_toolbar_menu_icon_height">16dp</dimen>
+    <dimen name="browser_toolbar_menu_radius">2dp</dimen>
 
     <!-- favicon_size includes 4dp of right padding. We can't use margin (which would allow us to
          specify the actual size) because that would decrease the size of our hit target. -->
     <dimen name="browser_toolbar_favicon_size">21.33dip</dimen>
-    <dimen name="browser_toolbar_shadow_size">2dp</dimen>
+    <dimen name="browser_toolbar_shadow_size">1dp</dimen>
 
     <!-- If you update one of these values, update the others. -->
-    <dimen name="tablet_nav_button_width">42dp</dimen>
+    <dimen name="tablet_nav_button_width">48dp</dimen>
     <dimen name="tablet_nav_button_width_half">21dp</dimen>
-    <dimen name="tablet_nav_button_width_plus_half">63dp</dimen>
+    <dimen name="tablet_nav_button_width_plus_half">36dp</dimen>
 
-    <dimen name="tablet_fwd_button_padding_start">18dp</dimen>
-    <dimen name="tablet_fwd_button_padding_end">0dp</dimen>
+    <dimen name="tablet_fwd_button_padding_start">4dp</dimen>
+    <dimen name="tablet_fwd_button_padding_end">4dp</dimen>
 
     <!-- This is the system default for the vertical padding for the divider of the TabWidget.
          Used to mimic the divider padding on the tablet tabs panel back button. -->
     <dimen name="tab_panel_divider_vertical_padding">12dp</dimen>
 
     <dimen name="tablet_tab_strip_height">48dp</dimen>
     <dimen name="tablet_tab_strip_item_width">178dp</dimen>
     <dimen name="tablet_tab_strip_item_height">40dp</dimen>
-    <dimen name="tablet_tab_strip_fading_edge_size">0dp</dimen>
+    <dimen name="tablet_tab_strip_fading_edge_size">15dp</dimen>
     <dimen name="tablet_tab_strip_item_margin">0dp</dimen>
     <dimen name="tablet_tab_strip_divider_width">1dp</dimen>
     <dimen name="tablet_tab_strip_divider_height">30dp</dimen>
     <dimen name="tablet_tab_strip_divider_padding_bottom">6dp</dimen>
     <dimen name="tablet_browser_toolbar_menu_item_width">56dp</dimen>
     <!-- Padding combines with an 18dp image to form the menu item width and height. -->
     <dimen name="tablet_browser_toolbar_menu_item_padding_horizontal">19dp</dimen>
     <dimen name="tablet_browser_toolbar_menu_item_inset_vertical">5dp</dimen>
@@ -182,17 +184,17 @@
 
     <!-- TabsListLayout -->
     <dimen name="tab_panel_list_item_top_padding">6dp</dimen>
 
 
     <dimen name="tab_highlight_stroke_width">5dp</dimen>
 
     <!-- PageActionButtons dimensions -->
-    <dimen name="page_action_button_width">32dp</dimen>
+    <dimen name="page_action_button_width">48dp</dimen>
 
     <!-- Banner -->
     <dimen name="home_banner_height">72dp</dimen>
     <dimen name="home_banner_close_width">42dp</dimen>
     <dimen name="home_banner_icon_height">48dip</dimen>
     <dimen name="home_banner_icon_width">48dip</dimen>
 
     <!-- Icon Grid -->
--- a/mobile/android/app/src/photon/res/values/styles.xml
+++ b/mobile/android/app/src/photon/res/values/styles.xml
@@ -802,24 +802,22 @@
     <style name="ActivityStreamButton" parent="Widget.AppCompat.Button.Colored">
         <item name="colorButtonNormal">@color/link_blue</item>
         <item name="android:textColor">@android:color/white</item>
     </style>
 
     <!-- URL bar - Site identity -->
     <style name="UrlBar.SiteIdentity" parent="UrlBar.V15.SiteIdentity"/>
     <style name="UrlBar.Base.SiteIdentity" parent="UrlBar.Button">
-        <item name="android:layout_width">35dp</item>
+        <item name="android:layout_width">@dimen/browser_toolbar_site_security_width</item>
         <item name="android:layout_height">@dimen/browser_toolbar_height</item>
-        <item name="android:scaleType">fitCenter</item>
+        <item name="android:scaleType">center</item>
     </style>
     <style name="UrlBar.V15.SiteIdentity" parent="UrlBar.Base.SiteIdentity">
         <item name="android:layout_marginLeft">5dp</item>
-        <item name="android:paddingLeft">5.5dp</item>
-        <item name="android:paddingRight">5.5dp</item>
     </style>
 
     <style name="UrlBar.Entry" parent="UrlBar.V15.Entry"/>
     <style name="UrlBar.Base.Entry" parent="UrlBar.Button"/>
     <style name="UrlBar.V15.Entry" parent="UrlBar.Base.Entry">
         <item name="android:layout_marginLeft">5dp</item>
         <item name="android:layout_toLeftOf">@+id/tabs</item>
     </style>
@@ -836,16 +834,17 @@
     <style name="UrlBar.V15.Menu" parent="UrlBar.Base.Menu">
         <item name="android:layout_alignParentRight">true</item>
     </style>
 
     <style name="UrlBar.Tabs" parent="UrlBar.V15.Tabs"/>
     <style name="UrlBar.Base.Tabs" parent="UrlBar.ImageButton"/>
     <style name="UrlBar.V15.Tabs" parent="UrlBar.Base.Tabs">
         <item name="android:layout_toLeftOf">@id/menu</item>
+        <item name="android:layout_marginRight">-4dp</item>
     </style>
 
     <style name="UrlBar.TabCounter" parent="UrlBar.V15.TabCounter"/>
     <style name="UrlBar.Base.TabCounter" parent="UrlBar.ImageButton"/>
     <style name="UrlBar.V15.TabCounter" parent="UrlBar.Base.TabCounter">
         <item name="android:layout_alignTop">@id/tabs</item>
         <item name="android:layout_alignRight">@id/tabs</item>
     </style>
@@ -857,20 +856,27 @@
     </style>
 
     <style name="UrlBar.EditLayout" parent="UrlBar.V15.EditLayout"/>
     <style name="UrlBar.Base.EditLayout" parent="UrlBar.Button"/>
     <style name="UrlBar.V15.EditLayout" parent="UrlBar.Base.EditLayout">
         <item name="android:layout_alignLeft">@id/url_bar_entry</item>
         <item name="android:layout_toLeftOf">@id/edit_cancel</item>
         <item name="android:paddingLeft">8dp</item>
-        <item name="android:paddingRight">8dp</item>
+        <item name="android:paddingRight">0dp</item>
+        <item name="android:layout_marginRight">-2dp</item>
     </style>
 
     <style name="UrlBar.DisplayLayout" parent="UrlBar.V15.DisplayLayout"/>
     <style name="UrlBar.Base.DisplayLayout" parent="UrlBar.Button"/>
 
     <style name="UrlBar.V15.DisplayLayout" parent="UrlBar.Base.DisplayLayout">
         <item name="android:layout_alignLeft">@id/url_bar_entry</item>
         <item name="android:layout_alignRight">@id/url_bar_entry</item>
+        <item name="android:layout_marginRight">-2dp</item>
+    </style>
+
+    <style name="UrlBar.QRCode" parent="UrlBar.V15.QRCode"/>
+    <style name="UrlBar.V15.QRCode" parent="UrlBar.ImageButton">
+        <item name="android:layout_marginRight">-2dp</item>
     </style>
 
 </resources>
--- a/mobile/android/base/java/org/mozilla/gecko/tabs/TabStripView.java
+++ b/mobile/android/base/java/org/mozilla/gecko/tabs/TabStripView.java
@@ -3,16 +3,17 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.tabs;
 
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Tab;
 import org.mozilla.gecko.Tabs;
+import org.mozilla.gecko.skin.SkinConfig;
 import org.mozilla.gecko.util.ThreadUtils;
 
 import android.animation.Animator;
 import android.animation.AnimatorSet;
 import android.animation.ObjectAnimator;
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Canvas;
@@ -268,18 +269,23 @@ public class TabStripView extends Recycl
 
     @Override
     public void draw(Canvas canvas) {
         super.draw(canvas);
         final boolean isLTR = !ViewUtils.isLayoutRtl(this);
         final float strength = getFadingEdgeStrength(isLTR);
         if (strength > 0.0f) {
             if (isLTR) {
-                final int r = getRight();
-                canvas.drawRect(r - fadingEdgeSize, getTop(), r, getBottom(), fadingEdgePaint);
+                if (SkinConfig.isAustralis()) {
+                    final int r = getRight();
+                    canvas.drawRect(r - fadingEdgeSize, getTop(), r, getBottom(), fadingEdgePaint);
+                } else {
+                    final int w = getWidth();
+                    canvas.drawRect(w - fadingEdgeSize, getTop(), w, getBottom(), fadingEdgePaint);
+                }
             } else {
                 canvas.drawRect(0, getTop(), fadingEdgeSize, getBottom(), fadingEdgePaint);
             }
             fadingEdgePaint.setAlpha((int) (strength * 255));
         }
     }
 
     private void animateRestoredTabs() {
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbarPhoneBase.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbarPhoneBase.java
@@ -10,16 +10,17 @@ import java.util.Arrays;
 import android.support.v4.content.ContextCompat;
 import org.mozilla.gecko.R;
 import org.mozilla.gecko.Tab;
 import org.mozilla.gecko.Telemetry;
 import org.mozilla.gecko.TelemetryContract;
 import org.mozilla.gecko.animation.PropertyAnimator;
 import org.mozilla.gecko.animation.ViewHelper;
 import org.mozilla.gecko.skin.SkinConfig;
+import org.mozilla.gecko.widget.themed.ThemedImageButton;
 import org.mozilla.gecko.widget.themed.ThemedImageView;
 
 import android.content.Context;
 import android.content.res.Resources;
 import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.Path;
 import android.support.v4.view.ViewCompat;
@@ -31,33 +32,33 @@ import android.widget.ImageView;
 
 /**
  * A base implementations of the browser toolbar for phones.
  * This class manages any Views, variables, etc. that are exclusive to phone.
  */
 abstract class BrowserToolbarPhoneBase extends BrowserToolbar {
 
     protected final ImageView urlBarTranslatingEdge;
-    protected final ThemedImageView editCancel;
+    protected final View editCancel;
 
     private final Path roundCornerShape;
     private final Paint roundCornerPaint;
 
     private final Interpolator buttonsInterpolator = new AccelerateInterpolator();
 
     public BrowserToolbarPhoneBase(final Context context, final AttributeSet attrs) {
         super(context, attrs);
         final Resources res = context.getResources();
 
         urlBarTranslatingEdge = (ImageView) findViewById(R.id.url_bar_translating_edge);
 
         // This will clip the translating edge's image at 60% of its width
         urlBarTranslatingEdge.getDrawable().setLevel(6000);
 
-        editCancel = (ThemedImageView) findViewById(R.id.edit_cancel);
+        editCancel = findViewById(R.id.edit_cancel);
 
         focusOrder.add(this);
         focusOrder.addAll(urlDisplayLayout.getFocusOrder());
         focusOrder.addAll(Arrays.asList(tabsButton, menuButton));
 
         roundCornerShape = new Path();
         updateRoundCornerShape();
 
@@ -106,17 +107,22 @@ abstract class BrowserToolbarPhoneBase e
                 }
             }
         });
     }
 
     @Override
     public void setPrivateMode(final boolean isPrivate) {
         super.setPrivateMode(isPrivate);
-        editCancel.setPrivateMode(isPrivate);
+
+        if (SkinConfig.isAustralis()) {
+            ((ThemedImageView) editCancel).setPrivateMode(isPrivate);
+        } else {
+            ((ThemedImageButton) editCancel).setPrivateMode(isPrivate);
+        }
     }
 
     @Override
     protected boolean isTabsButtonOffscreen() {
         return isEditing();
     }
 
     @Override
@@ -250,17 +256,27 @@ abstract class BrowserToolbarPhoneBase e
                 }
             }
         });
     }
 
     @Override
     public void onLightweightThemeChanged() {
         super.onLightweightThemeChanged();
-        editCancel.onLightweightThemeChanged();
+
+        if (SkinConfig.isAustralis()) {
+            ((ThemedImageView) editCancel).onLightweightThemeChanged();
+        } else {
+            ((ThemedImageButton) editCancel).onLightweightThemeChanged();
+        }
     }
 
     @Override
     public void onLightweightThemeReset() {
         super.onLightweightThemeReset();
-        editCancel.onLightweightThemeReset();
+
+        if (SkinConfig.isAustralis()) {
+            ((ThemedImageView) editCancel).onLightweightThemeReset();
+        } else {
+            ((ThemedImageButton) editCancel).onLightweightThemeReset();
+        }
     }
 }
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/NavButton.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/NavButton.java
@@ -1,42 +1,46 @@
 /* This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this file,
  * You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.toolbar;
 
+import android.content.res.TypedArray;
 import android.support.v4.content.ContextCompat;
 import org.mozilla.gecko.R;
+import org.mozilla.gecko.skin.SkinConfig;
 
 import android.content.Context;
-import android.content.res.Resources;
 import android.graphics.Canvas;
 import android.graphics.Paint;
 import android.graphics.Path;
 import android.graphics.drawable.Drawable;
 import android.graphics.drawable.StateListDrawable;
-import android.support.v4.graphics.drawable.DrawableCompat;
 import android.util.AttributeSet;
 
 abstract class NavButton extends ShapedButton {
     protected final Path mBorderPath;
     protected final Paint mBorderPaint;
     protected final float mBorderWidth;
 
     protected final int mBorderColor;
     protected final int mBorderColorPrivate;
 
     public NavButton(Context context, AttributeSet attrs) {
         super(context, attrs);
 
-        final Resources res = getResources();
-        mBorderColor = ContextCompat.getColor(context, R.color.disabled_grey);
-        mBorderColorPrivate = ContextCompat.getColor(context, R.color.toolbar_icon_grey);
-        mBorderWidth = res.getDimension(R.dimen.nav_button_border_width);
+        final TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.NavButton);
+        mBorderColor = a.getColor(R.styleable.NavButton_borderColor,
+                                  ContextCompat.getColor(context, R.color.disabled_grey));
+        mBorderColorPrivate = a.getColor(R.styleable.NavButton_borderColorPrivate,
+                                         ContextCompat.getColor(context, R.color.toolbar_icon_grey));
+        a.recycle();
+
+        mBorderWidth = getResources().getDimension(R.dimen.nav_button_border_width);
 
         // Paint to draw the border.
         mBorderPaint = new Paint();
         mBorderPaint.setAntiAlias(true);
         mBorderPaint.setStrokeWidth(mBorderWidth);
         mBorderPaint.setStyle(Paint.Style.STROKE);
 
         // Path is masked.
@@ -50,16 +54,21 @@ abstract class NavButton extends ShapedB
         super.setPrivateMode(isPrivate);
         mBorderPaint.setColor(isPrivate ? mBorderColorPrivate : mBorderColor);
     }
 
     @Override
     public void draw(Canvas canvas) {
         super.draw(canvas);
 
+        if (SkinConfig.isPhoton()) {
+            final double alpha = 255 * (isEnabled() ? 1 : 0.05);
+            mBorderPaint.setAlpha((int) alpha);
+        }
+
         // Draw the border on top.
         canvas.drawPath(mBorderPath, mBorderPaint);
     }
 
     // The drawable is constructed as per @drawable/url_bar_nav_button.
     @Override
     public void onLightweightThemeChanged() {
         final Drawable drawable = BrowserToolbar.getLightweightThemeDrawable(this, getTheme(), R.color.toolbar_grey);
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -918,28 +918,24 @@ gbjar.sources += ['java/org/mozilla/geck
     'text/TextAction.java',
     'text/TextSelection.java',
     'ThumbnailHelper.java',
     'toolbar/AutocompleteHandler.java',
     'toolbar/BackButton.java',
     'toolbar/BrowserToolbar.java',
     'toolbar/BrowserToolbarPhone.java',
     'toolbar/BrowserToolbarPhoneBase.java',
-    'toolbar/BrowserToolbarTablet.java',
-    'toolbar/BrowserToolbarTabletBase.java',
     'toolbar/CanvasDelegate.java',
-    'toolbar/ForwardButton.java',
     'toolbar/NavButton.java',
     'toolbar/PageActionLayout.java',
     'toolbar/PhoneTabsButton.java',
     'toolbar/SecurityModeUtil.java',
     'toolbar/ShapedButton.java',
     'toolbar/ShapedButtonFrameLayout.java',
     'toolbar/SiteIdentityPopup.java',
-    'toolbar/ToolbarDisplayLayout.java',
     'toolbar/ToolbarEditLayout.java',
     'toolbar/ToolbarEditText.java',
     'toolbar/ToolbarPrefs.java',
     'toolbar/ToolbarProgressView.java',
     'trackingprotection/TrackingProtectionPrompt.java',
     'updater/PostUpdateHandler.java',
     'updater/UpdateService.java',
     'updater/UpdateServiceHelper.java',
@@ -1009,23 +1005,33 @@ gbjar.sources += ['java/org/mozilla/geck
     'widget/themed/ThemedTextView.java',
     'widget/themed/ThemedView.java',
 ]]
 if CONFIG['MOZ_ANDROID_PHOTON']:
     gbjar.sources += ['../app/src/photon/java/org/mozilla/gecko/' + x for x in [
         'home/SearchEngineRow.java',
         'home/SuggestionItem.java',
         'skin/SkinConfig.java',
+        'toolbar/BrowserToolbarTablet.java',
+        'toolbar/BrowserToolbarTabletBase.java',
+        'toolbar/ForwardButton.java',
         'toolbar/TabCounter.java',
+        'toolbar/ToolbarDisplayLayout.java',
+        'toolbar/ToolbarRoundButton.java',
     ]]
 else:
     gbjar.sources += ['../app/src/australis/java/org/mozilla/gecko/' + x for x in [
         'home/SearchEngineRow.java',
         'skin/SkinConfig.java',
+        'toolbar/BrowserToolbarTablet.java',
+        'toolbar/BrowserToolbarTabletBase.java',
+        'toolbar/ForwardButton.java',
         'toolbar/TabCounter.java',
+        'toolbar/ToolbarDisplayLayout.java',
+        'toolbar/ToolbarRoundButton.java',
     ]]
 
 android_package_dir = CONFIG['ANDROID_PACKAGE_NAME'].replace('.', '/')
 gbjar.generated_sources = [] # Keep it this way.
 gbjar.extra_jars += [
     CONFIG['ANDROID_SUPPORT_ANNOTATIONS_JAR_LIB'],
     CONFIG['ANDROID_SUPPORT_V4_AAR_LIB'],
     CONFIG['ANDROID_SUPPORT_V4_AAR_INTERNAL_LIB'],