Changeset 66685 in webkit


Ignore:
Timestamp:
Sep 2, 2010 2:22:57 PM (14 years ago)
Author:
steveblock@google.com
Message:

2010-09-02 Steve Block <steveblock@google.com>

Reviewed by Adam Barth.

Hook up LayoutTestController.setMockDeviceOrientation() on Mac.
https://bugs.webkit.org/show_bug.cgi?id=43181

  • WebKit.xcodeproj/project.pbxproj:

2010-09-02 Steve Block <steveblock@google.com>

Reviewed by Adam Barth.

Hook up LayoutTestController.setMockDeviceOrientation() on Mac.
https://bugs.webkit.org/show_bug.cgi?id=43181

This patch hooks up the mock device orientation client on Mac for use
in DumpRenderTree.

The patch adds a new WebDeviceOrientationClient for Mac. This client acts
as a proxy to either a real or mock device orientation provider, both of
which implement a new WebDeviceOrientationProvider interface.

The provider is created by the embedder and passed to the WebView, from
where WebDeviceOrientationClient can access it.

The mock provider, WebDeviceOrientationProviderMock, is a wrapper around
the existing WebCore mock.

  • WebCoreSupport/WebDeviceOrientationClient.h: Added.
  • WebCoreSupport/WebDeviceOrientationClient.mm: Added. (WebDeviceOrientationClient::WebDeviceOrientationClient): (WebDeviceOrientationClient::setController): (WebDeviceOrientationClient::startUpdating): (WebDeviceOrientationClient::stopUpdating): (WebDeviceOrientationClient::lastOrientation):
  • WebKit.exp:
  • WebView/WebDeviceOrientation.h: Added.
  • WebView/WebDeviceOrientation.mm: Added. (-[WebDeviceOrientation initWithCoreDeviceOrientation:WebCore::]): (core): (-[WebDeviceOrientation initWithCanProvideAlpha:alpha:canProvideBeta:beta:canProvideGamma:gamma:]): (-[WebDeviceOrientation dealloc]):
  • WebView/WebDeviceOrientationInternal.h: Added.
  • WebView/WebDeviceOrientationProvider.h: Added.
  • WebView/WebDeviceOrientationProviderMock.h: Added.
  • WebView/WebDeviceOrientationProviderMock.mm: Added. (-[WebDeviceOrientationProviderMockInternal setOrientation:]): (-[WebDeviceOrientationProviderMockInternal setController:]): (-[WebDeviceOrientationProviderMockInternal startUpdating]): (-[WebDeviceOrientationProviderMockInternal stopUpdating]): (-[WebDeviceOrientationProviderMockInternal lastOrientation]): (-[WebDeviceOrientationProviderMock init]): (-[WebDeviceOrientationProviderMock dealloc]): (-[WebDeviceOrientationProviderMock setOrientation:]): (-[WebDeviceOrientationProviderMock setController:]): (-[WebDeviceOrientationProviderMock startUpdating]): (-[WebDeviceOrientationProviderMock stopUpdating]): (-[WebDeviceOrientationProviderMock lastOrientation]):
  • WebView/WebDeviceOrientationProviderMockInternal.h: Added.
  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]): (-[WebView _setDeviceOrientationProvider:]): (-[WebView _deviceOrientationProvider]):
  • WebView/WebViewData.h:
  • WebView/WebViewPrivate.h:

2010-09-02 Steve Block <steveblock@google.com>

Reviewed by Adam Barth.

Hook up LayoutTestController.setMockDeviceOrientation() on Mac.
https://bugs.webkit.org/show_bug.cgi?id=43181

  • DumpRenderTree/mac/DumpRenderTree.mm: (createWebViewAndOffscreenWindow):
  • DumpRenderTree/mac/LayoutTestControllerMac.mm: (LayoutTestController::setMockDeviceOrientation):
Location:
trunk
Files:
9 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit/ChangeLog

    r66437 r66685  
     12010-09-02  Steve Block  <steveblock@google.com>
     2
     3        Reviewed by Adam Barth.
     4
     5        Hook up LayoutTestController.setMockDeviceOrientation() on Mac.
     6        https://bugs.webkit.org/show_bug.cgi?id=43181
     7
     8        * WebKit.xcodeproj/project.pbxproj:
     9
    1102010-08-30  Andy Estes  <aestes@apple.com>
    211
  • trunk/WebKit/WebKit.xcodeproj/project.pbxproj

    r65579 r66685  
    112112                5241ADF50B1BC48A004012BD /* WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 5241ADF30B1BC48A004012BD /* WebCache.h */; settings = {ATTRIBUTES = (Private, ); }; };
    113113                5241ADF60B1BC48A004012BD /* WebCache.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5241ADF40B1BC48A004012BD /* WebCache.mm */; };
     114                598AD91A1201CEC900ABAE4E /* WebDeviceOrientationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 598AD9191201CEC900ABAE4E /* WebDeviceOrientationClient.h */; };
     115                598AD91E1201CECF00ABAE4E /* WebDeviceOrientationClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 598AD91D1201CECF00ABAE4E /* WebDeviceOrientationClient.mm */; };
     116                598AD9201201CF0700ABAE4E /* WebDeviceOrientation.h in Headers */ = {isa = PBXBuildFile; fileRef = 598AD91F1201CF0700ABAE4E /* WebDeviceOrientation.h */; settings = {ATTRIBUTES = (Private, ); }; };
     117                598AD9221201CF1000ABAE4E /* WebDeviceOrientation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 598AD9211201CF1000ABAE4E /* WebDeviceOrientation.mm */; };
     118                598AD9241201CF1900ABAE4E /* WebDeviceOrientationInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 598AD9231201CF1900ABAE4E /* WebDeviceOrientationInternal.h */; };
     119                598AD9261201CF2500ABAE4E /* WebDeviceOrientationProviderMock.h in Headers */ = {isa = PBXBuildFile; fileRef = 598AD9251201CF2500ABAE4E /* WebDeviceOrientationProviderMock.h */; settings = {ATTRIBUTES = (Private, ); }; };
     120                598AD9281201CF3200ABAE4E /* WebDeviceOrientationProviderMock.mm in Sources */ = {isa = PBXBuildFile; fileRef = 598AD9271201CF3200ABAE4E /* WebDeviceOrientationProviderMock.mm */; };
     121                598AD92A1201CF3B00ABAE4E /* WebDeviceOrientationProviderMockInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 598AD9291201CF3B00ABAE4E /* WebDeviceOrientationProviderMockInternal.h */; };
     122                598ADA461202275000ABAE4E /* WebDeviceOrientationProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = 598ADA451202275000ABAE4E /* WebDeviceOrientationProvider.h */; settings = {ATTRIBUTES = (Private, ); }; };
    114123                5D7BF8140C2A1D90008CE06D /* WebInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D7BF8120C2A1D90008CE06D /* WebInspector.h */; settings = {ATTRIBUTES = (Private, ); }; };
    115124                5D7BF8150C2A1D90008CE06D /* WebInspector.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D7BF8130C2A1D90008CE06D /* WebInspector.mm */; };
     
    524533                5241ADF30B1BC48A004012BD /* WebCache.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebCache.h; sourceTree = "<group>"; };
    525534                5241ADF40B1BC48A004012BD /* WebCache.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = WebCache.mm; sourceTree = "<group>"; };
     535                598AD9191201CEC900ABAE4E /* WebDeviceOrientationClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDeviceOrientationClient.h; sourceTree = "<group>"; };
     536                598AD91D1201CECF00ABAE4E /* WebDeviceOrientationClient.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebDeviceOrientationClient.mm; sourceTree = "<group>"; };
     537                598AD91F1201CF0700ABAE4E /* WebDeviceOrientation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDeviceOrientation.h; sourceTree = "<group>"; };
     538                598AD9211201CF1000ABAE4E /* WebDeviceOrientation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebDeviceOrientation.mm; sourceTree = "<group>"; };
     539                598AD9231201CF1900ABAE4E /* WebDeviceOrientationInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDeviceOrientationInternal.h; sourceTree = "<group>"; };
     540                598AD9251201CF2500ABAE4E /* WebDeviceOrientationProviderMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDeviceOrientationProviderMock.h; sourceTree = "<group>"; };
     541                598AD9271201CF3200ABAE4E /* WebDeviceOrientationProviderMock.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WebDeviceOrientationProviderMock.mm; sourceTree = "<group>"; };
     542                598AD9291201CF3B00ABAE4E /* WebDeviceOrientationProviderMockInternal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDeviceOrientationProviderMockInternal.h; sourceTree = "<group>"; };
     543                598ADA451202275000ABAE4E /* WebDeviceOrientationProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebDeviceOrientationProvider.h; sourceTree = "<group>"; };
    526544                5D7BF8120C2A1D90008CE06D /* WebInspector.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WebInspector.h; sourceTree = "<group>"; };
    527545                5D7BF8130C2A1D90008CE06D /* WebInspector.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = WebInspector.mm; sourceTree = "<group>"; };
     
    11251143                        isa = PBXGroup;
    11261144                        children = (
     1145                                598ADA451202275000ABAE4E /* WebDeviceOrientationProvider.h */,
     1146                                598AD9291201CF3B00ABAE4E /* WebDeviceOrientationProviderMockInternal.h */,
     1147                                598AD9271201CF3200ABAE4E /* WebDeviceOrientationProviderMock.mm */,
     1148                                598AD9251201CF2500ABAE4E /* WebDeviceOrientationProviderMock.h */,
     1149                                598AD9231201CF1900ABAE4E /* WebDeviceOrientationInternal.h */,
     1150                                598AD9211201CF1000ABAE4E /* WebDeviceOrientation.mm */,
     1151                                598AD91F1201CF0700ABAE4E /* WebDeviceOrientation.h */,
    11271152                                F52CA6BD02DF9D0F018635CA /* HTML */,
    11281153                                51E94C0706C02CA300A9B09E /* PDF */,
     
    12501275                        isa = PBXGroup;
    12511276                        children = (
     1277                                598AD91D1201CECF00ABAE4E /* WebDeviceOrientationClient.mm */,
     1278                                598AD9191201CEC900ABAE4E /* WebDeviceOrientationClient.h */,
    12521279                                B68049710FFBCEC1009F7F62 /* WebApplicationCache.h */,
    12531280                                B68049720FFBCEC1009F7F62 /* WebApplicationCache.mm */,
     
    15901617                                B804176F1217A83100466BAE /* WebInspectorFrontend.h in Headers */,
    15911618                                9391F275121B38BD00EBF7E8 /* WebFrameNetworkingContext.h in Headers */,
     1619                                598AD91A1201CEC900ABAE4E /* WebDeviceOrientationClient.h in Headers */,
     1620                                598AD9201201CF0700ABAE4E /* WebDeviceOrientation.h in Headers */,
     1621                                598AD9241201CF1900ABAE4E /* WebDeviceOrientationInternal.h in Headers */,
     1622                                598AD9261201CF2500ABAE4E /* WebDeviceOrientationProviderMock.h in Headers */,
     1623                                598AD92A1201CF3B00ABAE4E /* WebDeviceOrientationProviderMockInternal.h in Headers */,
     1624                                598ADA461202275000ABAE4E /* WebDeviceOrientationProvider.h in Headers */,
    15921625                        );
    15931626                        runOnlyForDeploymentPostprocessing = 0;
     
    19531986                                B80417701217A83100466BAE /* WebInspectorFrontend.mm in Sources */,
    19541987                                9391F276121B38BD00EBF7E8 /* WebFrameNetworkingContext.mm in Sources */,
     1988                                598AD91E1201CECF00ABAE4E /* WebDeviceOrientationClient.mm in Sources */,
     1989                                598AD9221201CF1000ABAE4E /* WebDeviceOrientation.mm in Sources */,
     1990                                598AD9281201CF3200ABAE4E /* WebDeviceOrientationProviderMock.mm in Sources */,
    19551991                        );
    19561992                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/WebKit/mac/ChangeLog

    r66644 r66685  
     12010-09-02  Steve Block  <steveblock@google.com>
     2
     3        Reviewed by Adam Barth.
     4
     5        Hook up LayoutTestController.setMockDeviceOrientation() on Mac.
     6        https://bugs.webkit.org/show_bug.cgi?id=43181
     7
     8        This patch hooks up the mock device orientation client on Mac for use
     9        in DumpRenderTree.
     10
     11        The patch adds a new WebDeviceOrientationClient for Mac. This client acts
     12        as a proxy to either a real or mock device orientation provider, both of
     13        which implement a new WebDeviceOrientationProvider interface.
     14
     15        The provider is created by the embedder and passed to the WebView, from
     16        where WebDeviceOrientationClient can access it.
     17
     18        The mock provider, WebDeviceOrientationProviderMock, is a wrapper around
     19        the existing WebCore mock.
     20
     21        * WebCoreSupport/WebDeviceOrientationClient.h: Added.
     22        * WebCoreSupport/WebDeviceOrientationClient.mm: Added.
     23        (WebDeviceOrientationClient::WebDeviceOrientationClient):
     24        (WebDeviceOrientationClient::setController):
     25        (WebDeviceOrientationClient::startUpdating):
     26        (WebDeviceOrientationClient::stopUpdating):
     27        (WebDeviceOrientationClient::lastOrientation):
     28        * WebKit.exp:
     29        * WebView/WebDeviceOrientation.h: Added.
     30        * WebView/WebDeviceOrientation.mm: Added.
     31        (-[WebDeviceOrientation initWithCoreDeviceOrientation:WebCore::]):
     32        (core):
     33        (-[WebDeviceOrientation initWithCanProvideAlpha:alpha:canProvideBeta:beta:canProvideGamma:gamma:]):
     34        (-[WebDeviceOrientation dealloc]):
     35        * WebView/WebDeviceOrientationInternal.h: Added.
     36        * WebView/WebDeviceOrientationProvider.h: Added.
     37        * WebView/WebDeviceOrientationProviderMock.h: Added.
     38        * WebView/WebDeviceOrientationProviderMock.mm: Added.
     39        (-[WebDeviceOrientationProviderMockInternal setOrientation:]):
     40        (-[WebDeviceOrientationProviderMockInternal setController:]):
     41        (-[WebDeviceOrientationProviderMockInternal startUpdating]):
     42        (-[WebDeviceOrientationProviderMockInternal stopUpdating]):
     43        (-[WebDeviceOrientationProviderMockInternal lastOrientation]):
     44        (-[WebDeviceOrientationProviderMock init]):
     45        (-[WebDeviceOrientationProviderMock dealloc]):
     46        (-[WebDeviceOrientationProviderMock setOrientation:]):
     47        (-[WebDeviceOrientationProviderMock setController:]):
     48        (-[WebDeviceOrientationProviderMock startUpdating]):
     49        (-[WebDeviceOrientationProviderMock stopUpdating]):
     50        (-[WebDeviceOrientationProviderMock lastOrientation]):
     51        * WebView/WebDeviceOrientationProviderMockInternal.h: Added.
     52        * WebView/WebView.mm:
     53        (-[WebView _commonInitializationWithFrameName:groupName:usesDocumentViews:]):
     54        (-[WebView _setDeviceOrientationProvider:]):
     55        (-[WebView _deviceOrientationProvider]):
     56        * WebView/WebViewData.h:
     57        * WebView/WebViewPrivate.h:
     58
    1592010-09-01  Jia Pu  <jpu@apple.com>
    260
  • trunk/WebKit/mac/WebKit.exp

    r63263 r66685  
    88.objc_class_name_WebDatabaseManager
    99.objc_class_name_WebDefaultPolicyDelegate
     10.objc_class_name_WebDeviceOrientation
     11.objc_class_name_WebDeviceOrientationProviderMock
    1012.objc_class_name_WebDownload
    1113.objc_class_name_WebDynamicScrollBarsView
  • trunk/WebKit/mac/WebView/WebView.mm

    r66577 r66685  
    4848#import "WebDefaultUIDelegate.h"
    4949#import "WebDelegateImplementationCaching.h"
     50#import "WebDeviceOrientationClient.h"
     51#import "WebDeviceOrientationProvider.h"
    5052#import "WebDocument.h"
    5153#import "WebDocumentInternal.h"
     
    684686    pageClients.geolocationControllerClient = new WebGeolocationControllerClient(self);
    685687#endif
     688#if ENABLE(DEVICE_ORIENTATION)
     689    pageClients.deviceOrientationClient = new WebDeviceOrientationClient(self);
     690#endif
    686691    _private->page = new Page(pageClients);
    687692
     
    58845889@end
    58855890
     5891@implementation WebView (WebViewDeviceOrientation)
     5892
     5893- (void)_setDeviceOrientationProvider:(id<WebDeviceOrientationProvider>)deviceOrientationProvider
     5894{
     5895    if (_private)
     5896        _private->m_deviceOrientationProvider = deviceOrientationProvider;
     5897}
     5898
     5899- (id<WebDeviceOrientationProvider>)_deviceOrientationProvider
     5900{
     5901    if (_private)
     5902        return _private->m_deviceOrientationProvider;
     5903    return nil;
     5904}
     5905
     5906@end
     5907
    58865908@implementation WebView (WebViewGeolocation)
    58875909
  • trunk/WebKit/mac/WebView/WebViewData.h

    r65021 r66685  
    3939}
    4040
     41@class WebDeviceOrientationClient;
    4142@class WebInspector;
    4243@class WebNodeHighlight;
     
    4546@class WebTextCompletionController;
    4647@protocol WebFormDelegate;
     48@protocol WebDeviceOrientationProvider;
    4749@protocol WebGeolocationProvider;
    4850#if ENABLE(VIDEO)
     
    175177#endif
    176178    id<WebGeolocationProvider> _geolocationProvider;
     179    id<WebDeviceOrientationProvider> m_deviceOrientationProvider;
    177180}
    178181@end
  • trunk/WebKit/mac/WebView/WebViewPrivate.h

    r66544 r66685  
    4545@class NSError;
    4646@class WebFrame;
     47@class WebDeviceOrientation;
    4748@class WebGeolocationPosition;
    4849@class WebInspector;
     
    5152@class WebTextIterator;
    5253
     54@protocol WebDeviceOrientationProvider;
    5355@protocol WebFormDelegate;
    5456
     
    606608@end
    607609
     610@interface WebView (WebViewDeviceOrientation)
     611- (void)_setDeviceOrientationProvider:(id<WebDeviceOrientationProvider>)deviceOrientationProvider;
     612- (id<WebDeviceOrientationProvider>)_deviceOrientationProvider;
     613@end
     614
    608615@protocol WebGeolocationProvider <NSObject>
    609616- (void)registerWebView:(WebView *)webView;
  • trunk/WebKitTools/ChangeLog

    r66682 r66685  
     12010-09-02  Steve Block  <steveblock@google.com>
     2
     3        Reviewed by Adam Barth.
     4
     5        Hook up LayoutTestController.setMockDeviceOrientation() on Mac.
     6        https://bugs.webkit.org/show_bug.cgi?id=43181
     7
     8        * DumpRenderTree/mac/DumpRenderTree.mm:
     9        (createWebViewAndOffscreenWindow):
     10        * DumpRenderTree/mac/LayoutTestControllerMac.mm:
     11        (LayoutTestController::setMockDeviceOrientation):
     12
    1132010-08-31  Adam Roben  <aroben@apple.com>
    214
  • trunk/WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm

    r66251 r66685  
    6363#import <WebKit/WebDatabaseManagerPrivate.h>
    6464#import <WebKit/WebDocumentPrivate.h>
     65#import <WebKit/WebDeviceOrientationProviderMock.h>
    6566#import <WebKit/WebEditingDelegate.h>
    6667#import <WebKit/WebFrameView.h>
     
    293294    [webView setResourceLoadDelegate:resourceLoadDelegate];
    294295    [webView _setGeolocationProvider:[MockGeolocationProvider shared]];
     296    [webView _setDeviceOrientationProvider:[[WebDeviceOrientationProviderMock alloc] init]];
    295297
    296298    // Register the same schemes that Safari does
  • trunk/WebKitTools/DumpRenderTree/mac/LayoutTestControllerMac.mm

    r65666 r66685  
    4646#import <WebKit/WebBackForwardList.h>
    4747#import <WebKit/WebCoreStatistics.h>
     48#import <WebKit/WebDOMOperationsPrivate.h>
    4849#import <WebKit/WebDataSource.h>
    4950#import <WebKit/WebDatabaseManagerPrivate.h>
    50 #import <WebKit/WebDOMOperationsPrivate.h>
     51#import <WebKit/WebDeviceOrientation.h>
     52#import <WebKit/WebDeviceOrientationProviderMock.h>
    5153#import <WebKit/WebFrame.h>
    5254#import <WebKit/WebFrameViewPrivate.h>
     
    337339void LayoutTestController::setMockDeviceOrientation(bool canProvideAlpha, double alpha, bool canProvideBeta, double beta, bool canProvideGamma, double gamma)
    338340{
    339     // FIXME: Implement for DeviceOrientation layout tests.
    340     // See https://bugs.webkit.org/show_bug.cgi?id=30335.
    341 
     341    // DumpRenderTree configured the WebView to use WebDeviceOrientationProviderMock.
     342    id<WebDeviceOrientationProvider> provider = [[mainFrame webView] _deviceOrientationProvider];
     343    WebDeviceOrientationProviderMock* mockProvider = static_cast<WebDeviceOrientationProviderMock*>(provider);
     344    WebDeviceOrientation* orientation = [[WebDeviceOrientation alloc] initWithCanProvideAlpha:canProvideAlpha alpha:alpha canProvideBeta:canProvideBeta beta:beta canProvideGamma:canProvideGamma gamma:gamma];
     345    [mockProvider setOrientation:orientation];
    342346}
    343347
Note: See TracChangeset for help on using the changeset viewer.