| OLD | NEW |
| 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/context_factory.h" | 9 #include "content/public/browser/context_factory.h" |
| 10 #include "content/public/browser/render_widget_host_view.h" | 10 #include "content/public/browser/render_widget_host_view.h" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 | 50 |
| 51 namespace content { | 51 namespace content { |
| 52 | 52 |
| 53 namespace { | 53 namespace { |
| 54 // ViewDelegate implementation for aura content shell | 54 // ViewDelegate implementation for aura content shell |
| 55 class ShellViewsDelegateAura : public views::DesktopTestViewsDelegate { | 55 class ShellViewsDelegateAura : public views::DesktopTestViewsDelegate { |
| 56 public: | 56 public: |
| 57 ShellViewsDelegateAura() : use_transparent_windows_(false) { | 57 ShellViewsDelegateAura() : use_transparent_windows_(false) { |
| 58 } | 58 } |
| 59 | 59 |
| 60 virtual ~ShellViewsDelegateAura() { | 60 ~ShellViewsDelegateAura() override {} |
| 61 } | |
| 62 | 61 |
| 63 void SetUseTransparentWindows(bool transparent) { | 62 void SetUseTransparentWindows(bool transparent) { |
| 64 use_transparent_windows_ = transparent; | 63 use_transparent_windows_ = transparent; |
| 65 } | 64 } |
| 66 | 65 |
| 67 private: | 66 private: |
| 68 bool use_transparent_windows_; | 67 bool use_transparent_windows_; |
| 69 | 68 |
| 70 DISALLOW_COPY_AND_ASSIGN(ShellViewsDelegateAura); | 69 DISALLOW_COPY_AND_ASSIGN(ShellViewsDelegateAura); |
| 71 }; | 70 }; |
| 72 | 71 |
| 73 // Model for the "Debug" menu | 72 // Model for the "Debug" menu |
| 74 class ContextMenuModel : public ui::SimpleMenuModel, | 73 class ContextMenuModel : public ui::SimpleMenuModel, |
| 75 public ui::SimpleMenuModel::Delegate { | 74 public ui::SimpleMenuModel::Delegate { |
| 76 public: | 75 public: |
| 77 explicit ContextMenuModel( | 76 explicit ContextMenuModel( |
| 78 Shell* shell, const content::ContextMenuParams& params) | 77 Shell* shell, const content::ContextMenuParams& params) |
| 79 : ui::SimpleMenuModel(this), | 78 : ui::SimpleMenuModel(this), |
| 80 shell_(shell), | 79 shell_(shell), |
| 81 params_(params) { | 80 params_(params) { |
| 82 AddItem(COMMAND_OPEN_DEVTOOLS, base::ASCIIToUTF16("Inspect Element")); | 81 AddItem(COMMAND_OPEN_DEVTOOLS, base::ASCIIToUTF16("Inspect Element")); |
| 83 } | 82 } |
| 84 | 83 |
| 85 // ui::SimpleMenuModel::Delegate: | 84 // ui::SimpleMenuModel::Delegate: |
| 86 virtual bool IsCommandIdChecked(int command_id) const override { | 85 bool IsCommandIdChecked(int command_id) const override { return false; } |
| 86 bool IsCommandIdEnabled(int command_id) const override { return true; } |
| 87 bool GetAcceleratorForCommandId(int command_id, |
| 88 ui::Accelerator* accelerator) override { |
| 87 return false; | 89 return false; |
| 88 } | 90 } |
| 89 virtual bool IsCommandIdEnabled(int command_id) const override { | 91 void ExecuteCommand(int command_id, int event_flags) override { |
| 90 return true; | |
| 91 } | |
| 92 virtual bool GetAcceleratorForCommandId( | |
| 93 int command_id, | |
| 94 ui::Accelerator* accelerator) override { return false; } | |
| 95 virtual void ExecuteCommand(int command_id, int event_flags) override { | |
| 96 switch (command_id) { | 92 switch (command_id) { |
| 97 case COMMAND_OPEN_DEVTOOLS: | 93 case COMMAND_OPEN_DEVTOOLS: |
| 98 shell_->ShowDevToolsForElementAt(params_.x, params_.y); | 94 shell_->ShowDevToolsForElementAt(params_.x, params_.y); |
| 99 break; | 95 break; |
| 100 }; | 96 }; |
| 101 } | 97 } |
| 102 | 98 |
| 103 private: | 99 private: |
| 104 enum CommandID { | 100 enum CommandID { |
| 105 COMMAND_OPEN_DEVTOOLS | 101 COMMAND_OPEN_DEVTOOLS |
| (...skipping 14 matching lines...) Expand all Loading... |
| 120 BACK_BUTTON, | 116 BACK_BUTTON, |
| 121 FORWARD_BUTTON, | 117 FORWARD_BUTTON, |
| 122 STOP_BUTTON | 118 STOP_BUTTON |
| 123 }; | 119 }; |
| 124 | 120 |
| 125 ShellWindowDelegateView(Shell* shell) | 121 ShellWindowDelegateView(Shell* shell) |
| 126 : shell_(shell), | 122 : shell_(shell), |
| 127 toolbar_view_(new View), | 123 toolbar_view_(new View), |
| 128 contents_view_(new View) { | 124 contents_view_(new View) { |
| 129 } | 125 } |
| 130 virtual ~ShellWindowDelegateView() {} | 126 ~ShellWindowDelegateView() override {} |
| 131 | 127 |
| 132 // Update the state of UI controls | 128 // Update the state of UI controls |
| 133 void SetAddressBarURL(const GURL& url) { | 129 void SetAddressBarURL(const GURL& url) { |
| 134 url_entry_->SetText(base::ASCIIToUTF16(url.spec())); | 130 url_entry_->SetText(base::ASCIIToUTF16(url.spec())); |
| 135 } | 131 } |
| 136 void SetWebContents(WebContents* web_contents, const gfx::Size& size) { | 132 void SetWebContents(WebContents* web_contents, const gfx::Size& size) { |
| 137 contents_view_->SetLayoutManager(new views::FillLayout()); | 133 contents_view_->SetLayoutManager(new views::FillLayout()); |
| 138 web_view_ = new views::WebView(web_contents->GetBrowserContext()); | 134 web_view_ = new views::WebView(web_contents->GetBrowserContext()); |
| 139 web_view_->SetWebContents(web_contents); | 135 web_view_->SetWebContents(web_contents); |
| 140 web_view_->SetPreferredSize(size); | 136 web_view_->SetPreferredSize(size); |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 ui::VKEY_BROWSER_BACK, | 297 ui::VKEY_BROWSER_BACK, |
| 302 ui::VKEY_BROWSER_FORWARD }; | 298 ui::VKEY_BROWSER_FORWARD }; |
| 303 for (size_t i = 0; i < arraysize(keys); ++i) { | 299 for (size_t i = 0; i < arraysize(keys); ++i) { |
| 304 GetFocusManager()->RegisterAccelerator( | 300 GetFocusManager()->RegisterAccelerator( |
| 305 ui::Accelerator(keys[i], ui::EF_NONE), | 301 ui::Accelerator(keys[i], ui::EF_NONE), |
| 306 ui::AcceleratorManager::kNormalPriority, | 302 ui::AcceleratorManager::kNormalPriority, |
| 307 this); | 303 this); |
| 308 } | 304 } |
| 309 } | 305 } |
| 310 // Overridden from TextfieldController | 306 // Overridden from TextfieldController |
| 311 virtual void ContentsChanged(views::Textfield* sender, | 307 void ContentsChanged(views::Textfield* sender, |
| 312 const base::string16& new_contents) override { | 308 const base::string16& new_contents) override {} |
| 313 } | 309 bool HandleKeyEvent(views::Textfield* sender, |
| 314 virtual bool HandleKeyEvent(views::Textfield* sender, | 310 const ui::KeyEvent& key_event) override { |
| 315 const ui::KeyEvent& key_event) override { | |
| 316 if (sender == url_entry_ && key_event.key_code() == ui::VKEY_RETURN) { | 311 if (sender == url_entry_ && key_event.key_code() == ui::VKEY_RETURN) { |
| 317 std::string text = base::UTF16ToUTF8(url_entry_->text()); | 312 std::string text = base::UTF16ToUTF8(url_entry_->text()); |
| 318 GURL url(text); | 313 GURL url(text); |
| 319 if (!url.has_scheme()) { | 314 if (!url.has_scheme()) { |
| 320 url = GURL(std::string("http://") + std::string(text)); | 315 url = GURL(std::string("http://") + std::string(text)); |
| 321 url_entry_->SetText(base::ASCIIToUTF16(url.spec())); | 316 url_entry_->SetText(base::ASCIIToUTF16(url.spec())); |
| 322 } | 317 } |
| 323 shell_->LoadURL(url); | 318 shell_->LoadURL(url); |
| 324 return true; | 319 return true; |
| 325 } | 320 } |
| 326 return false; | 321 return false; |
| 327 } | 322 } |
| 328 | 323 |
| 329 // Overridden from ButtonListener | 324 // Overridden from ButtonListener |
| 330 virtual void ButtonPressed(views::Button* sender, | 325 void ButtonPressed(views::Button* sender, const ui::Event& event) override { |
| 331 const ui::Event& event) override { | |
| 332 if (sender == back_button_) | 326 if (sender == back_button_) |
| 333 shell_->GoBackOrForward(-1); | 327 shell_->GoBackOrForward(-1); |
| 334 else if (sender == forward_button_) | 328 else if (sender == forward_button_) |
| 335 shell_->GoBackOrForward(1); | 329 shell_->GoBackOrForward(1); |
| 336 else if (sender == refresh_button_) | 330 else if (sender == refresh_button_) |
| 337 shell_->Reload(); | 331 shell_->Reload(); |
| 338 else if (sender == stop_button_) | 332 else if (sender == stop_button_) |
| 339 shell_->Stop(); | 333 shell_->Stop(); |
| 340 } | 334 } |
| 341 | 335 |
| 342 // Overridden from WidgetDelegateView | 336 // Overridden from WidgetDelegateView |
| 343 virtual bool CanResize() const override { return true; } | 337 bool CanResize() const override { return true; } |
| 344 virtual bool CanMaximize() const override { return true; } | 338 bool CanMaximize() const override { return true; } |
| 345 virtual bool CanMinimize() const override { return true; } | 339 bool CanMinimize() const override { return true; } |
| 346 virtual base::string16 GetWindowTitle() const override { | 340 base::string16 GetWindowTitle() const override { return title_; } |
| 347 return title_; | 341 void WindowClosing() override { |
| 348 } | |
| 349 virtual void WindowClosing() override { | |
| 350 if (shell_) { | 342 if (shell_) { |
| 351 delete shell_; | 343 delete shell_; |
| 352 shell_ = NULL; | 344 shell_ = NULL; |
| 353 } | 345 } |
| 354 } | 346 } |
| 355 virtual View* GetContentsView() override { return this; } | 347 View* GetContentsView() override { return this; } |
| 356 | 348 |
| 357 // Overridden from View | 349 // Overridden from View |
| 358 virtual gfx::Size GetMinimumSize() const override { | 350 gfx::Size GetMinimumSize() const override { |
| 359 // We want to be able to make the window smaller than its initial | 351 // We want to be able to make the window smaller than its initial |
| 360 // (preferred) size. | 352 // (preferred) size. |
| 361 return gfx::Size(); | 353 return gfx::Size(); |
| 362 } | 354 } |
| 363 virtual void ViewHierarchyChanged( | 355 void ViewHierarchyChanged( |
| 364 const ViewHierarchyChangedDetails& details) override { | 356 const ViewHierarchyChangedDetails& details) override { |
| 365 if (details.is_add && details.child == this) { | 357 if (details.is_add && details.child == this) { |
| 366 InitShellWindow(); | 358 InitShellWindow(); |
| 367 } | 359 } |
| 368 } | 360 } |
| 369 | 361 |
| 370 // Overridden from AcceleratorTarget: | 362 // Overridden from AcceleratorTarget: |
| 371 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) override { | 363 bool AcceleratorPressed(const ui::Accelerator& accelerator) override { |
| 372 switch (accelerator.key_code()) { | 364 switch (accelerator.key_code()) { |
| 373 case ui::VKEY_F5: | 365 case ui::VKEY_F5: |
| 374 shell_->Reload(); | 366 shell_->Reload(); |
| 375 return true; | 367 return true; |
| 376 case ui::VKEY_BROWSER_BACK: | 368 case ui::VKEY_BROWSER_BACK: |
| 377 shell_->GoBackOrForward(-1); | 369 shell_->GoBackOrForward(-1); |
| 378 return true; | 370 return true; |
| 379 case ui::VKEY_BROWSER_FORWARD: | 371 case ui::VKEY_BROWSER_FORWARD: |
| 380 shell_->GoBackOrForward(1); | 372 shell_->GoBackOrForward(1); |
| 381 return true; | 373 return true; |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 | 559 |
| 568 void Shell::PlatformWebContentsFocused(WebContents* contents) { | 560 void Shell::PlatformWebContentsFocused(WebContents* contents) { |
| 569 if (headless_) | 561 if (headless_) |
| 570 return; | 562 return; |
| 571 ShellWindowDelegateView* delegate_view = | 563 ShellWindowDelegateView* delegate_view = |
| 572 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate()); | 564 static_cast<ShellWindowDelegateView*>(window_widget_->widget_delegate()); |
| 573 delegate_view->OnWebContentsFocused(contents); | 565 delegate_view->OnWebContentsFocused(contents); |
| 574 } | 566 } |
| 575 | 567 |
| 576 } // namespace content | 568 } // namespace content |
| OLD | NEW |