| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "athena/content/web_activity.h" | 5 #include "athena/content/web_activity.h" |
| 6 | 6 |
| 7 #include "athena/activity/public/activity_factory.h" | 7 #include "athena/activity/public/activity_factory.h" |
| 8 #include "athena/activity/public/activity_manager.h" | 8 #include "athena/activity/public/activity_manager.h" |
| 9 #include "athena/content/content_proxy.h" | 9 #include "athena/content/content_proxy.h" |
| 10 #include "athena/content/media_utils.h" | 10 #include "athena/content/media_utils.h" |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 case NEW_POPUP: | 258 case NEW_POPUP: |
| 259 case NEW_WINDOW: { | 259 case NEW_WINDOW: { |
| 260 Activity* activity = ActivityFactory::Get()->CreateWebActivity( | 260 Activity* activity = ActivityFactory::Get()->CreateWebActivity( |
| 261 browser_context(), base::string16(), params.url); | 261 browser_context(), base::string16(), params.url); |
| 262 Activity::Show(activity); | 262 Activity::Show(activity); |
| 263 break; | 263 break; |
| 264 } | 264 } |
| 265 default: | 265 default: |
| 266 break; | 266 break; |
| 267 } | 267 } |
| 268 // NULL is returned if the URL wasn't opened immediately. | 268 // nullptr is returned if the URL wasn't opened immediately. |
| 269 return NULL; | 269 return nullptr; |
| 270 } | 270 } |
| 271 | 271 |
| 272 virtual bool CanOverscrollContent() const override { | 272 virtual bool CanOverscrollContent() const override { |
| 273 const std::string value = CommandLine::ForCurrentProcess()-> | 273 const std::string value = CommandLine::ForCurrentProcess()-> |
| 274 GetSwitchValueASCII(switches::kOverscrollHistoryNavigation); | 274 GetSwitchValueASCII(switches::kOverscrollHistoryNavigation); |
| 275 return value != "0"; | 275 return value != "0"; |
| 276 } | 276 } |
| 277 | 277 |
| 278 virtual void OverscrollUpdate(float delta_y) override { | 278 virtual void OverscrollUpdate(float delta_y) override { |
| 279 overscroll_y_ = delta_y; | 279 overscroll_y_ = delta_y; |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 331 GetWidget()->SetFullscreen(fullscreen_); | 331 GetWidget()->SetFullscreen(fullscreen_); |
| 332 } | 332 } |
| 333 | 333 |
| 334 virtual bool IsFullscreenForTabOrPending( | 334 virtual bool IsFullscreenForTabOrPending( |
| 335 const content::WebContents* web_contents) const override { | 335 const content::WebContents* web_contents) const override { |
| 336 return fullscreen_; | 336 return fullscreen_; |
| 337 } | 337 } |
| 338 | 338 |
| 339 virtual void LoadingStateChanged(content::WebContents* source, | 339 virtual void LoadingStateChanged(content::WebContents* source, |
| 340 bool to_different_document) override { | 340 bool to_different_document) override { |
| 341 bool has_stopped = source == NULL || !source->IsLoading(); | 341 bool has_stopped = source == nullptr || !source->IsLoading(); |
| 342 LoadProgressChanged(source, has_stopped ? 1 : 0); | 342 LoadProgressChanged(source, has_stopped ? 1 : 0); |
| 343 } | 343 } |
| 344 | 344 |
| 345 virtual void LoadProgressChanged(content::WebContents* source, | 345 virtual void LoadProgressChanged(content::WebContents* source, |
| 346 double progress) override { | 346 double progress) override { |
| 347 if (!progress) | 347 if (!progress) |
| 348 return; | 348 return; |
| 349 | 349 |
| 350 if (!progress_bar_) { | 350 if (!progress_bar_) { |
| 351 CreateProgressBar(); | 351 CreateProgressBar(); |
| 352 source->GetNativeView()->layer()->Add(progress_bar_.get()); | 352 source->GetNativeView()->layer()->Add(progress_bar_.get()); |
| 353 } | 353 } |
| 354 progress_bar_->SetBounds(gfx::Rect( | 354 progress_bar_->SetBounds(gfx::Rect( |
| 355 0, 0, progress * progress_bar_->parent()->bounds().width(), 3)); | 355 0, 0, progress * progress_bar_->parent()->bounds().width(), 3)); |
| 356 if (progress < 1) | 356 if (progress < 1) |
| 357 return; | 357 return; |
| 358 | 358 |
| 359 ui::ScopedLayerAnimationSettings settings(progress_bar_->GetAnimator()); | 359 ui::ScopedLayerAnimationSettings settings(progress_bar_->GetAnimator()); |
| 360 settings.SetTweenType(gfx::Tween::EASE_IN); | 360 settings.SetTweenType(gfx::Tween::EASE_IN); |
| 361 ui::Layer* layer = progress_bar_.get(); | 361 ui::Layer* layer = progress_bar_.get(); |
| 362 settings.AddObserver(new ui::ClosureAnimationObserver( | 362 settings.AddObserver(new ui::ClosureAnimationObserver( |
| 363 base::Bind(&base::DeletePointer<ui::Layer>, progress_bar_.release()))); | 363 base::Bind(&base::DeletePointer<ui::Layer>, progress_bar_.release()))); |
| 364 layer->SetOpacity(0.f); | 364 layer->SetOpacity(0.f); |
| 365 } | 365 } |
| 366 | 366 |
| 367 virtual content::JavaScriptDialogManager* GetJavaScriptDialogManager() | 367 virtual content::JavaScriptDialogManager* GetJavaScriptDialogManager() |
| 368 override { | 368 override { |
| 369 NOTIMPLEMENTED(); | 369 NOTIMPLEMENTED(); |
| 370 return NULL; | 370 return nullptr; |
| 371 } | 371 } |
| 372 | 372 |
| 373 virtual content::ColorChooser* OpenColorChooser( | 373 virtual content::ColorChooser* OpenColorChooser( |
| 374 content::WebContents* web_contents, | 374 content::WebContents* web_contents, |
| 375 SkColor color, | 375 SkColor color, |
| 376 const std::vector<content::ColorSuggestion>& suggestions) override { | 376 const std::vector<content::ColorSuggestion>& suggestions) override { |
| 377 return athena::OpenColorChooser(web_contents, color, suggestions); | 377 return athena::OpenColorChooser(web_contents, color, suggestions); |
| 378 } | 378 } |
| 379 | 379 |
| 380 // Called when a file selection is to be done. | 380 // Called when a file selection is to be done. |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 498 break; | 498 break; |
| 499 case ACTIVITY_PERSISTENT: | 499 case ACTIVITY_PERSISTENT: |
| 500 DCHECK_EQ(ACTIVITY_BACKGROUND_LOW_PRIORITY, current_state_); | 500 DCHECK_EQ(ACTIVITY_BACKGROUND_LOW_PRIORITY, current_state_); |
| 501 // TODO(skuhne): Do this. As soon as the new resource management is | 501 // TODO(skuhne): Do this. As soon as the new resource management is |
| 502 // agreed upon - or remove otherwise. | 502 // agreed upon - or remove otherwise. |
| 503 break; | 503 break; |
| 504 case ACTIVITY_UNLOADED: | 504 case ACTIVITY_UNLOADED: |
| 505 DCHECK_NE(ACTIVITY_UNLOADED, current_state_); | 505 DCHECK_NE(ACTIVITY_UNLOADED, current_state_); |
| 506 if (content_proxy_) | 506 if (content_proxy_) |
| 507 content_proxy_->ContentWillUnload(); | 507 content_proxy_->ContentWillUnload(); |
| 508 Observe(NULL); | 508 Observe(nullptr); |
| 509 web_view_->EvictContent(); | 509 web_view_->EvictContent(); |
| 510 break; | 510 break; |
| 511 } | 511 } |
| 512 // Remember the last requested state. | 512 // Remember the last requested state. |
| 513 current_state_ = state; | 513 current_state_ = state; |
| 514 } | 514 } |
| 515 | 515 |
| 516 Activity::ActivityState WebActivity::GetCurrentState() { | 516 Activity::ActivityState WebActivity::GetCurrentState() { |
| 517 // If the content is evicted, the state has to be UNLOADED. | 517 // If the content is evicted, the state has to be UNLOADED. |
| 518 DCHECK(!web_view_->IsContentEvicted() || | 518 DCHECK(!web_view_->IsContentEvicted() || |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 561 | 561 |
| 562 bool WebActivity::UsesFrame() const { | 562 bool WebActivity::UsesFrame() const { |
| 563 return true; | 563 return true; |
| 564 } | 564 } |
| 565 | 565 |
| 566 views::View* WebActivity::GetContentsView() { | 566 views::View* WebActivity::GetContentsView() { |
| 567 return web_view_; | 567 return web_view_; |
| 568 } | 568 } |
| 569 | 569 |
| 570 views::Widget* WebActivity::CreateWidget() { | 570 views::Widget* WebActivity::CreateWidget() { |
| 571 return NULL; // Use default widget. | 571 return nullptr; // Use default widget. |
| 572 } | 572 } |
| 573 | 573 |
| 574 gfx::ImageSkia WebActivity::GetOverviewModeImage() { | 574 gfx::ImageSkia WebActivity::GetOverviewModeImage() { |
| 575 if (content_proxy_.get()) | 575 if (content_proxy_.get()) |
| 576 return content_proxy_->GetContentImage(); | 576 return content_proxy_->GetContentImage(); |
| 577 return gfx::ImageSkia(); | 577 return gfx::ImageSkia(); |
| 578 } | 578 } |
| 579 | 579 |
| 580 void WebActivity::PrepareContentsForOverview() { | 580 void WebActivity::PrepareContentsForOverview() { |
| 581 // Turn on fast resizing to avoid re-laying out the web contents when | 581 // Turn on fast resizing to avoid re-laying out the web contents when |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 627 } | 627 } |
| 628 } | 628 } |
| 629 | 629 |
| 630 void WebActivity::OnDidDownloadFavicon( | 630 void WebActivity::OnDidDownloadFavicon( |
| 631 int id, | 631 int id, |
| 632 int http_status_code, | 632 int http_status_code, |
| 633 const GURL& url, | 633 const GURL& url, |
| 634 const std::vector<SkBitmap>& bitmaps, | 634 const std::vector<SkBitmap>& bitmaps, |
| 635 const std::vector<gfx::Size>& original_bitmap_sizes) { | 635 const std::vector<gfx::Size>& original_bitmap_sizes) { |
| 636 icon_ = CreateFaviconImageSkia( | 636 icon_ = CreateFaviconImageSkia( |
| 637 bitmaps, original_bitmap_sizes, kIconSize, NULL); | 637 bitmaps, original_bitmap_sizes, kIconSize, nullptr); |
| 638 ActivityManager::Get()->UpdateActivity(this); | 638 ActivityManager::Get()->UpdateActivity(this); |
| 639 } | 639 } |
| 640 | 640 |
| 641 void WebActivity::DidChangeThemeColor(SkColor theme_color) { | 641 void WebActivity::DidChangeThemeColor(SkColor theme_color) { |
| 642 title_color_ = theme_color; | 642 title_color_ = theme_color; |
| 643 ActivityManager::Get()->UpdateActivity(this); | 643 ActivityManager::Get()->UpdateActivity(this); |
| 644 } | 644 } |
| 645 | 645 |
| 646 void WebActivity::HideContentProxy() { | 646 void WebActivity::HideContentProxy() { |
| 647 if (content_proxy_.get()) | 647 if (content_proxy_.get()) |
| 648 content_proxy_.reset(NULL); | 648 content_proxy_.reset(nullptr); |
| 649 } | 649 } |
| 650 | 650 |
| 651 void WebActivity::ShowContentProxy() { | 651 void WebActivity::ShowContentProxy() { |
| 652 if (!content_proxy_.get()) | 652 if (!content_proxy_.get()) |
| 653 content_proxy_.reset(new ContentProxy(web_view_)); | 653 content_proxy_.reset(new ContentProxy(web_view_)); |
| 654 } | 654 } |
| 655 | 655 |
| 656 } // namespace athena | 656 } // namespace athena |
| OLD | NEW |