Changeset 217391 in webkit
- Timestamp:
- May 24, 2017 4:05:53 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/fast/dom/navigator-detached-no-crash-expected.txt
r207021 r217391 19 19 navigator.vendor is OK 20 20 navigator.vendorSub is OK 21 navigator.webdriver is OK 21 22 navigator.appCodeName is OK 22 23 navigator.appName is OK … … 37 38 navigator.vendor is OK 38 39 navigator.vendorSub is OK 40 navigator.webdriver is OK 39 41 -
trunk/Source/WebCore/ChangeLog
r217388 r217391 1 2017-05-24 Sergey Shekyan <shekyan@gmail.com> 2 3 navigator.webdriver should return false if the page is not controlled by automation 4 https://bugs.webkit.org/show_bug.cgi?id=171997 5 6 Reviewed by Chris Dumez. 7 8 Per WebDriver Specification at https://www.w3.org/TR/webdriver/#interface 9 10 Test: js/dom/navigator-webdriver.html 11 Rebaseled fast/dom/navigator-detached-no-crash.html 12 13 * Modules/webdriver/NavigatorWebDriver.cpp: 14 (WebCore::NavigatorWebDriver::NavigatorWebDriver): 15 (WebCore::NavigatorWebDriver::isControlledByAutomation): 16 (WebCore::NavigatorWebDriver::from): 17 (WebCore::NavigatorWebDriver::webdriver): 18 (WebCore::JSNavigator::webdriver): Deleted. 19 * Modules/webdriver/NavigatorWebDriver.h: 20 * Modules/webdriver/NavigatorWebDriver.idl: 21 1 22 2017-05-24 Ryan Haddad <ryanhaddad@apple.com> 2 23 -
trunk/Source/WebCore/Modules/webdriver/NavigatorWebDriver.cpp
r210697 r217391 28 28 29 29 #include "Frame.h" 30 #include "JSNavigator.h"31 30 #include "Navigator.h" 32 31 #include "Page.h" 33 #include <JavaScriptCore/JSCInlines.h>34 32 35 33 using namespace JSC; … … 37 35 namespace WebCore { 38 36 39 NavigatorWebDriver::NavigatorWebDriver(Frame* frame) 40 : m_frame(frame) 37 NavigatorWebDriver::NavigatorWebDriver() 41 38 { 42 39 } … … 51 48 } 52 49 53 bool NavigatorWebDriver::isControlledByAutomation( ) const50 bool NavigatorWebDriver::isControlledByAutomation(const Navigator& navigator) 54 51 { 55 if (!m_frame || !m_frame->page()) 52 auto* frame = navigator.frame(); 53 if (!frame || !frame->page()) 56 54 return false; 57 55 58 return m_frame->page()->isControlledByAutomation();56 return frame->page()->isControlledByAutomation(); 59 57 } 60 58 … … 63 61 NavigatorWebDriver* supplement = static_cast<NavigatorWebDriver*>(Supplement<Navigator>::from(navigator, supplementName())); 64 62 if (!supplement) { 65 auto newSupplement = std::make_unique<NavigatorWebDriver>( navigator->frame());63 auto newSupplement = std::make_unique<NavigatorWebDriver>(); 66 64 supplement = newSupplement.get(); 67 65 provideTo(navigator, supplementName(), WTFMove(newSupplement)); … … 70 68 } 71 69 72 JSValue JSNavigator::webdriver(ExecState&) const 70 bool NavigatorWebDriver::webdriver(const Navigator& navigator) 73 71 { 74 bool isControlledByAutomation = NavigatorWebDriver::from(&wrapped())->isControlledByAutomation(); 75 return isControlledByAutomation ? jsBoolean(true) : jsUndefined(); 72 return NavigatorWebDriver::isControlledByAutomation(navigator); 76 73 } 77 74 -
trunk/Source/WebCore/Modules/webdriver/NavigatorWebDriver.h
r209198 r217391 30 30 namespace WebCore { 31 31 32 class Frame;33 32 class Navigator; 34 33 35 34 class NavigatorWebDriver final : public Supplement<Navigator> { 36 35 public: 37 explicit NavigatorWebDriver(Frame*);36 NavigatorWebDriver(); 38 37 virtual ~NavigatorWebDriver(); 39 38 40 bool isControlledByAutomation() const;41 42 39 static NavigatorWebDriver* from(Navigator*); 43 static bool isControlledByAutomation(Navigator& navigator);40 static bool webdriver(const Navigator&); 44 41 private: 45 42 static const char* supplementName(); 46 47 Frame* m_frame { nullptr }; 43 static bool isControlledByAutomation(const Navigator&); 48 44 }; 49 45 -
trunk/Source/WebCore/Modules/webdriver/NavigatorWebDriver.idl
r209198 r217391 25 25 26 26 partial interface Navigator { 27 [NotEnumerable, Custom]readonly attribute boolean webdriver;27 readonly attribute boolean webdriver; 28 28 };
Note: See TracChangeset
for help on using the changeset viewer.