OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #import <Cocoa/Cocoa.h> | |
6 | |
7 #include "webkit/tools/test_shell/webview_host.h" | |
8 #include "webkit/tools/test_shell/mac/test_shell_webview.h" | |
9 | |
10 #include "skia/ext/platform_canvas.h" | |
11 #include "third_party/WebKit/Source/Platform/chromium/public/WebSize.h" | |
12 #include "third_party/WebKit/Source/WebKit/chromium/public/WebSettings.h" | |
13 #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" | |
14 #include "ui/gfx/rect.h" | |
15 #include "ui/gfx/size.h" | |
16 #include "webkit/glue/webpreferences.h" | |
17 #include "webkit/tools/test_shell/test_shell.h" | |
18 #include "webkit/tools/test_shell/test_webview_delegate.h" | |
19 | |
20 using WebKit::WebDevToolsAgentClient; | |
21 using WebKit::WebSize; | |
22 using WebKit::WebView; | |
23 | |
24 // static | |
25 WebViewHost* WebViewHost::Create(NSView* parent_view, | |
26 TestWebViewDelegate* delegate, | |
27 WebDevToolsAgentClient* dev_tools_client, | |
28 const WebPreferences& prefs) { | |
29 WebViewHost* host = new WebViewHost(); | |
30 | |
31 NSRect content_rect = [parent_view frame]; | |
32 // bump down the top of the view so that it doesn't overlap the buttons | |
33 // and URL field. 32 is an ad hoc constant. | |
34 // TODO(awalker): replace explicit view layout with a little nib file | |
35 // and use that for view geometry. | |
36 content_rect.size.height -= 32; | |
37 host->view_ = [[TestShellWebView alloc] initWithFrame:content_rect]; | |
38 // make the height and width track the window size. | |
39 [host->view_ setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)]; | |
40 [parent_view addSubview:host->view_]; | |
41 [host->view_ release]; | |
42 | |
43 host->webwidget_ = WebView::create(delegate); | |
44 host->webview()->setDevToolsAgentClient(dev_tools_client); | |
45 webkit_glue::ApplyWebPreferences(prefs, host->webview()); | |
46 host->webview()->settings()->setExperimentalCSSGridLayoutEnabled(true); | |
47 host->webview()->initializeMainFrame(delegate); | |
48 host->webwidget_->resize(WebSize(NSWidth(content_rect), | |
49 NSHeight(content_rect))); | |
50 | |
51 return host; | |
52 } | |
53 | |
54 WebView* WebViewHost::webview() const { | |
55 return static_cast<WebView*>(webwidget_); | |
56 } | |
57 | |
58 void WebViewHost::SetIsActive(bool active) { | |
59 // Ignore calls in layout test mode so that tests don't mess with each other | |
60 // when running in parallel. | |
61 if (!TestShell::layout_test_mode()) | |
62 webview()->setIsActive(active); | |
63 } | |
OLD | NEW |