Merge "Configure to run Robot w/chrome headless option dd"
diff --git a/robot/resources/browser_setup.robot b/robot/resources/browser_setup.robot
index 6ef4f72..5d34d3d 100644
--- a/robot/resources/browser_setup.robot
+++ b/robot/resources/browser_setup.robot
@@ -7,6 +7,7 @@
 Resource          global_properties.robot
 
 *** Variables ***
+${HEADLESS}   True
 
 *** Keywords ***
 Setup Browser
@@ -14,28 +15,33 @@
     Run Keyword If    '${GLOBAL_SELENIUM_BROWSER}' == 'firefox'    Setup Browser Firefox
     Run Keyword If    '${GLOBAL_SELENIUM_BROWSER}' == 'chrome'    Setup Browser Chrome
     Log    Running with ${GLOBAL_SELENIUM_BROWSER}
-    
+
+
 Setup Browser Firefox
-    ${dc}   Evaluate    sys.modules['selenium.webdriver'].DesiredCapabilities.FIREFOX  sys, selenium.webdriver
-    Set To Dictionary   ${dc}   elementScrollBehavior    1 
-    Create Webdriver    Firefox    desired_capabilities=${dc}
-    Set Global Variable    ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES}    ${dc}
-           
+    ${caps}=   Evaluate   sys.modules['selenium.webdriver'].common.desired_capabilities.DesiredCapabilities.FIREFOX   sys
+    Set To Dictionary   ${caps}   marionette=
+    Set To Dictionary   ${caps}   elementScrollBehavior    1
+    # TODO
+    # Figure out how to run FF headless without Xvfb
+    ${wd}=   Create WebDriver   Firefox   capabilities=${caps}
+    Set Global Variable    ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES}    ${caps}
+
  Setup Browser Chrome
-    ${os}=   Get Normalized Os 
+    ${os}=   Get Normalized Os
     Log    Normalized OS=${os}
     ${chrome options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys
     Call Method    ${chrome options}    add_argument    no-sandbox
+    Run Keyword If  ${HEADLESS}==True  Call Method    ${chrome options}    add_argument    headless
     ${dc}   Evaluate    sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME  sys, selenium.webdriver
     Set To Dictionary   ${dc}   elementScrollBehavior    1
-    Create Webdriver    Chrome   chrome_options=${chrome_options}    desired_capabilities=${dc}  
-    Set Global Variable    ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES}    ${dc}       
+    Create Webdriver    Chrome   chrome_options=${chrome_options}    desired_capabilities=${dc}
+    Set Global Variable    ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES}    ${dc}
 
-Handle Proxy Warning    
+Handle Proxy Warning
     [Documentation]    Handle Intermediate Warnings from Proxies
-    ${status}    ${data}=    Run Keyword And Ignore Error   Variable Should Exist    \${GLOBAL_PROXY_WARNING_TITLE}           
+    ${status}    ${data}=    Run Keyword And Ignore Error   Variable Should Exist    \${GLOBAL_PROXY_WARNING_TITLE}
     Return From Keyword if    '${status}' != 'PASS'
-    ${status}    ${data}=    Run Keyword And Ignore Error   Variable Should Exist    \${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}          
+    ${status}    ${data}=    Run Keyword And Ignore Error   Variable Should Exist    \${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}
     Return From Keyword if    '${status}' != 'PASS'
     Return From Keyword if    "${GLOBAL_PROXY_WARNING_TITLE}" == ''
     Return From Keyword if    "${GLOBAL_PROXY_WARNING_CONTINUE_XPATH}" == ''
diff --git a/setup.sh b/setup.sh
index d89fd02..16a3e16 100644
--- a/setup.sh
+++ b/setup.sh
@@ -73,7 +73,7 @@
 #
 # Get the appropriate chromedriver. Default to linux64
 #
-CHROMEDRIVER_URL=http://chromedriver.storage.googleapis.com/2.27
+CHROMEDRIVER_URL=http://chromedriver.storage.googleapis.com/2.29
 CHROMEDRIVER_ZIP=chromedriver_linux64.zip
 
 # Handle mac and windows