Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: content/shell/browser/shell_views.cc

Issue 71243002: Support headless content_shell for linux/aura. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix the crash seen with earlier patch in popup tests! Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/shell/browser/shell.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/shell/browser/shell.h" 5 #include "content/shell/browser/shell.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/utf_string_conversions.h" 8 #include "base/strings/utf_string_conversions.h"
9 #include "content/public/browser/render_widget_host_view.h"
9 #include "content/public/browser/web_contents.h" 10 #include "content/public/browser/web_contents.h"
10 #include "content/public/browser/web_contents_view.h" 11 #include "content/public/browser/web_contents_view.h"
11 #include "ui/aura/env.h" 12 #include "ui/aura/env.h"
12 #include "ui/aura/root_window.h" 13 #include "ui/aura/root_window.h"
13 #include "ui/aura/window.h" 14 #include "ui/aura/window.h"
14 #include "ui/base/accessibility/accessibility_types.h" 15 #include "ui/base/accessibility/accessibility_types.h"
15 #include "ui/base/clipboard/clipboard.h" 16 #include "ui/base/clipboard/clipboard.h"
16 #include "ui/base/resource/resource_bundle.h" 17 #include "ui/base/resource/resource_bundle.h"
17 #include "ui/events/event.h" 18 #include "ui/events/event.h"
18 #include "ui/gfx/screen.h" 19 #include "ui/gfx/screen.h"
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 #if defined(OS_CHROMEOS) 330 #if defined(OS_CHROMEOS)
330 chromeos::DBusThreadManager::Shutdown(); 331 chromeos::DBusThreadManager::Shutdown();
331 #endif 332 #endif
332 aura::Env::DeleteInstance(); 333 aura::Env::DeleteInstance();
333 } 334 }
334 335
335 void Shell::PlatformCleanUp() { 336 void Shell::PlatformCleanUp() {
336 } 337 }
337 338
338 void Shell::PlatformEnableUIControl(UIControl control, bool is_enabled) { 339 void Shell::PlatformEnableUIControl(UIControl control, bool is_enabled) {
340 if (headless_)
341 return;
342
339 ShellWindowDelegateView* delegate_view = 343 ShellWindowDelegateView* delegate_view =
340 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate()); 344 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate());
341 if (control == BACK_BUTTON) { 345 if (control == BACK_BUTTON) {
342 delegate_view->EnableUIControl(ShellWindowDelegateView::BACK_BUTTON, 346 delegate_view->EnableUIControl(ShellWindowDelegateView::BACK_BUTTON,
343 is_enabled); 347 is_enabled);
344 } else if (control == FORWARD_BUTTON) { 348 } else if (control == FORWARD_BUTTON) {
345 delegate_view->EnableUIControl(ShellWindowDelegateView::FORWARD_BUTTON, 349 delegate_view->EnableUIControl(ShellWindowDelegateView::FORWARD_BUTTON,
346 is_enabled); 350 is_enabled);
347 } else if (control == STOP_BUTTON) { 351 } else if (control == STOP_BUTTON) {
348 delegate_view->EnableUIControl(ShellWindowDelegateView::STOP_BUTTON, 352 delegate_view->EnableUIControl(ShellWindowDelegateView::STOP_BUTTON,
349 is_enabled); 353 is_enabled);
350 } 354 }
351 } 355 }
352 356
353 void Shell::PlatformSetAddressBarURL(const GURL& url) { 357 void Shell::PlatformSetAddressBarURL(const GURL& url) {
358 if (headless_)
359 return;
360
354 ShellWindowDelegateView* delegate_view = 361 ShellWindowDelegateView* delegate_view =
355 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate()); 362 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate());
356 delegate_view->SetAddressBarURL(url); 363 delegate_view->SetAddressBarURL(url);
357 } 364 }
358 365
359 void Shell::PlatformSetIsLoading(bool loading) { 366 void Shell::PlatformSetIsLoading(bool loading) {
360 } 367 }
361 368
362 void Shell::PlatformCreateWindow(int width, int height) { 369 void Shell::PlatformCreateWindow(int width, int height) {
363 #if defined(OS_CHROMEOS) 370 #if defined(OS_CHROMEOS)
364 window_widget_ = views::Widget::CreateWindowWithContextAndBounds( 371 window_widget_ = views::Widget::CreateWindowWithContextAndBounds(
365 new ShellWindowDelegateView(this), 372 new ShellWindowDelegateView(this),
366 wm_test_helper_->GetDefaultParent(NULL, NULL, gfx::Rect()), 373 wm_test_helper_->GetDefaultParent(NULL, NULL, gfx::Rect()),
367 gfx::Rect(0, 0, width, height)); 374 gfx::Rect(0, 0, width, height));
368 #else 375 #else
376 if (headless_) {
377 content_width_ = width;
378 content_height_ = height;
379 return;
380 }
381
369 window_widget_ = views::Widget::CreateWindowWithBounds( 382 window_widget_ = views::Widget::CreateWindowWithBounds(
370 new ShellWindowDelegateView(this), gfx::Rect(0, 0, width, height)); 383 new ShellWindowDelegateView(this), gfx::Rect(0, 0, width, height));
371 #endif 384 #endif
372 385
373 content_size_ = gfx::Size(width, height); 386 content_size_ = gfx::Size(width, height);
374 387
375 window_ = window_widget_->GetNativeWindow(); 388 window_ = window_widget_->GetNativeWindow();
376 // Call ShowRootWindow on RootWindow created by WMTestHelper without 389 // Call ShowRootWindow on RootWindow created by WMTestHelper without
377 // which XWindow owned by RootWindow doesn't get mapped. 390 // which XWindow owned by RootWindow doesn't get mapped.
378 window_->GetDispatcher()->host()->Show(); 391 window_->GetDispatcher()->host()->Show();
379 window_widget_->Show(); 392 window_widget_->Show();
380 } 393 }
381 394
382 void Shell::PlatformSetContents() { 395 void Shell::PlatformSetContents() {
396 if (headless_) {
397 if (web_contents_) {
398 RenderWidgetHostView* rwhv =
399 web_contents_->GetRenderWidgetHostView();
400 if (rwhv)
401 rwhv->SetSize(gfx::Size(content_width_, content_height_));
402 }
403 return;
404 }
405
383 ShellWindowDelegateView* delegate_view = 406 ShellWindowDelegateView* delegate_view =
384 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate()); 407 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate());
385 delegate_view->SetWebContents(web_contents_.get(), content_size_); 408 delegate_view->SetWebContents(web_contents_.get(), content_size_);
386 } 409 }
387 410
388 void Shell::PlatformResizeSubViews() { 411 void Shell::PlatformResizeSubViews() {
389 } 412 }
390 413
391 void Shell::Close() { 414 void Shell::Close() {
415 if (headless_) {
416 delete this;
417 return;
418 }
419
392 window_widget_->CloseNow(); 420 window_widget_->CloseNow();
393 } 421 }
394 422
395 void Shell::PlatformSetTitle(const string16& title) { 423 void Shell::PlatformSetTitle(const string16& title) {
424 if (headless_)
425 return;
426
396 ShellWindowDelegateView* delegate_view = 427 ShellWindowDelegateView* delegate_view =
397 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate()); 428 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate());
398 delegate_view->SetWindowTitle(title); 429 delegate_view->SetWindowTitle(title);
399 window_widget_->UpdateWindowTitle(); 430 window_widget_->UpdateWindowTitle();
400 } 431 }
401 432
402 } // namespace content 433 } // namespace content
OLDNEW
« no previous file with comments | « content/shell/browser/shell.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698